1

嗨,我最近使用 rtk 查询工具学习了新的 react 工具包,我正在尝试使用createApirtk 包中的登录系统。

在按下登录按钮对其进行测试后,我看到网络请求通过没有任何问题(状态代码 200),并且我得到一个提供的响应对象usertoken但是,当我尝试使用我获取返回数据时,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"},因为在我的检查窗口的网络选项卡下我可以看到这个网络请求的响应,但我看到的是data: undefined

有没有人有解决这个问题的经验?

4

1 回答 1

3

哦,我找到了原因,这是一个非常粗心的错误。我不得不将减速器包装到我的商店,这是我所缺少的

于 2021-08-28T02:30:10.430 回答