Redux 工具包 RTK 查询突变未获取返回数据
Redux toolkit RTK query mutation not getting returning data
嗨,我最近学习了带有 rtk 查询工具的新 React 工具包,我正在尝试使用 rtk 包中的 createApi
将登录系统放在一起。
在按下登录按钮对其进行测试后,我看到网络请求顺利通过(状态代码 200),并且我得到一个响应对象提供 user
、token
,但是,当我尝试使用 useLoginMutation
获取返回数据时,我得到了一个未定义的值。
下面是我的端点的代码,它被注入到基础 api:
export const apiLogin = theiaBaseApi.injectEndpoints({
endpoints: (build) => ({
loginUser: build.mutation<UserReadonly, loginValuesType | string>({
query: (values: loginValuesType, redirect?: string) => {
const { username, password } = values;
const header = gettingSomeHeaderHere
return {
url: "login",
method: "GET",
headers,
crossDomain: true,
responseType: "json",
};
},
}),
}),
});
export const { useLoginUserMutation } = apiLogin
然后在我的 React 组件中,我解构了变异结果,如下所示:
const [login, {data, isLoading}] = useLoginUserMutation();
const submitLogin = () => {
// pass in username password from the form
login({username, password});
}
假设如果我控制台注销 data
和 isLoading
我假设我会看到 data: {user: "abc", token: "xyz"}
,因为在我检查 window 的网络选项卡下我可以看到此网络请求的响应,但我看到的是 data: undefined
有没有人有解决这个问题的经验?
哦,找到原因了,很粗心的错误。我不得不将减速器包装到我的商店,这正是我所缺少的
嗨,我最近学习了带有 rtk 查询工具的新 React 工具包,我正在尝试使用 rtk 包中的 createApi
将登录系统放在一起。
在按下登录按钮对其进行测试后,我看到网络请求顺利通过(状态代码 200),并且我得到一个响应对象提供 user
、token
,但是,当我尝试使用 useLoginMutation
获取返回数据时,我得到了一个未定义的值。
下面是我的端点的代码,它被注入到基础 api:
export const apiLogin = theiaBaseApi.injectEndpoints({
endpoints: (build) => ({
loginUser: build.mutation<UserReadonly, loginValuesType | string>({
query: (values: loginValuesType, redirect?: string) => {
const { username, password } = values;
const header = gettingSomeHeaderHere
return {
url: "login",
method: "GET",
headers,
crossDomain: true,
responseType: "json",
};
},
}),
}),
});
export const { useLoginUserMutation } = apiLogin
然后在我的 React 组件中,我解构了变异结果,如下所示:
const [login, {data, isLoading}] = useLoginUserMutation();
const submitLogin = () => {
// pass in username password from the form
login({username, password});
}
假设如果我控制台注销 data
和 isLoading
我假设我会看到 data: {user: "abc", token: "xyz"}
,因为在我检查 window 的网络选项卡下我可以看到此网络请求的响应,但我看到的是 data: undefined
有没有人有解决这个问题的经验?
哦,找到原因了,很粗心的错误。我不得不将减速器包装到我的商店,这正是我所缺少的