【问题标题】:POST request response undefined , but REQUEST worksPOST 请求响应未定义,但 REQUEST 有效
【发布时间】:2022-01-05 18:40:34
【问题描述】:

用户切片

import { createSlice, createAsyncThunk } from "@reduxjs/toolkit";
import LoginService from "../../Services/Login.service";

export const userRegister = createAsyncThunk(
  "users/register",
  async (params) => {
    try {
      const { registerForm } = params;
      const { data } = await LoginService.register(registerForm);

      return data;
    } catch (error) {
    }
  }
);

const initialState = {
  userData: {},
  errorResponse: null,
  status: "idle",
};

export const userSlice = createSlice({
  name: "User",
  initialState,
  reducers: {},
  extraReducers: {
    [userRegister.pending]: (state, action) => {
      state.status = "loading";
    },
    [userRegister.fulfilled]: (state, action) => {
      state.status = "succeeded";
      state.userData = action.payload;
    },
    [userRegister.error]: (state, action) => {
      state.status = "failed";
      state.errorResponse = action.payload;
    },
  },
});

export default userSlice.reducer;

登录服务.js

import axios from "axios";

const API = axios.create({ baseURL: 'http://localhost:3001'});

const LoginService = {

    register: async (registerData ) => {
         await API.post('/users/register', registerData)
    } 
};

export default LoginService;

您好。我尝试在我的应用中添加注册功能。但是当我提交注册表时,数据会毫无问题地保存到数据库中。但是这条线const data = await LoginService.register(registerForm); 不工作数据是未定义的,但是当我在邮递员中发布相同的请求时,我会以我想要的方式获得响应数据。

【问题讨论】:

  • 目前,您正在解构register 的返回值,提取可能未定义的data。您是否尝试过记录 await LoginService.register(registerForm) 返回的整个对象?

标签: javascript reactjs redux-thunk redux-toolkit


【解决方案1】:

LoginService.register 没有返回任何东西, 你可以通过这样做来解决这个问题:

const LoginService = {
    register: async (registerData ) => {
         const response = await API.post('/users/register', registerData);
         
         return response.data;
    } 
};

【讨论】:

  • 这很好,但是由于 OP 已经使用 const { data } = ... 解构返回值,因此可以通过从定义中删除花括号来简化它,甚至 async 也是不必要的,因为它们已经await打电话。 register: registerData => API.post('/users/register', registerData);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-22
  • 1970-01-01
  • 2021-08-17
  • 1970-01-01
  • 2019-07-19
  • 1970-01-01
  • 2023-03-14
相关资源
最近更新 更多