KComponent icon indicating copy to clipboard operation
KComponent copied to clipboard

带 Context 参数的 RouterInterceptor 反射创建问题

Open binglingziyu opened this issue 1 year ago • 4 comments

@InterceptorAnno(CommonConst.INTERCEPTOR_USER_LOGIN)
class LoginInterceptor(context: Context) : RouterInterceptor {

    @Inject
    lateinit var userDataRepository: UserDataRepository

    init {
        LoginInterceptorEntryPoint.resolve(context).inject(this)
    }

    override suspend fun intercept(chain: RouterInterceptor.Chain): RouterResult {
        if(!userDataRepository.isLogin()) {
            val context = chain.request().rawAliveContext!!
            Router.with(context)
                .hostAndPath("user/login")
                .requestCodeRandom()
                .resultCodeMatchAwait()
        }
        return chain.proceed(chain.request())
    }

}
image

binglingziyu avatar Dec 31 '24 09:12 binglingziyu

我没太理解, 你这里是啥意思. 是指反射没有走 init{} 吗

xiaojinzi123 avatar Dec 31 '24 11:12 xiaojinzi123

我没太理解, 你这里是啥意思. 是指反射没有走 init{} 吗

Interceptor 创建报错了 route fail:router://app/main and errorClass is IllegalArgumentException,errorMsg is 'Callable expects 1 arguments, but 0 were provided.'

binglingziyu avatar Dec 31 '24 13:12 binglingziyu

确实是个问题. 之前 Kotlin 版本这段没问题的. 我这些天有空排查下

xiaojinzi123 avatar Jan 01 '25 14:01 xiaojinzi123

我最新版本上应该修复上了

xiaojinzi123 avatar Jan 01 '25 15:01 xiaojinzi123