在if语句中,当请求成功时,数据类型为const data: IAuthResponse | undefined
。为什么会这样呢?
const [login, { data, isSuccess }] = useLoginMutation()
const onSubmit = (loginData: ILoginData) => {
login(loginData)
}
if (isSuccess) {
localStorage.setItem('token', data.accessToken)
}
此处定义端点:
login: builder.mutation<IAuthResponse, ILoginData>({
query: ({ email, password }) => ({ url: '/login', method: "POST", body: { email, password } }),
invalidatesTags: ['Auth'],
}),
由于isSucces
表示最后一次触发的变化包含来自成功请求的数据,因此我认为data
不会是未定义的
1条答案
按热度按时间wnavrhmk1#
我找到了使用
onQueryStarted
来避免这个问题的方法,通常它似乎是更好的方法:(但是,我仍然想知道为什么
data
在我的问题案例中可能是未定义的。