为什么数据为空?反应 + 终极版

Why Data is null? React + Redux

为什么数据为空?反应 + 终极版。这是我第一次使用 Redux。

这是我的要求。该请求运行良好。状态为 200 并请求 return 我的数据

const API_URL = "http://URL/";

class AuthService {
    static async onHandleSignIn(login: string, password: string) {
        await fetch(API_URL + 'api/Auth/signIn', {
            method: 'POST',
            headers: {'Content-Type': 'application/json'},
            body: JSON.stringify({
                'login': login,
                'password': password
            })
        }).then(response =>
            response.json().then(data => ({
                data: data,
                status: response.status
            })).then(res => {
                if (res.status === 200) {
                    localStorage.setItem('token', res.data.token);
                    return res.data
                }
            })
        )
    }
}

export default AuthService;

我尝试用另一种方法获取数据,它们 return 未定义。控制台显示数据未定义。

import AuthService from "../../../api/requests/authorization";

export const login = (username: string, password: string) => (dispatch: any) => {
    return AuthService.onHandleSignIn(username, password).then(
        (data) => {
            console.log(data) //data = undefined

            dispatch({
                type: "LOGIN_SUCCESS",
                payload: {user: data},
            });

            return Promise.resolve();
        },
        (error) => {
            dispatch({
                type: "LOGIN_FAIL",
            });

            console.log(error)

            return Promise.reject();
        }
    );
};

正如我所说,这是我第一次接触 Redux。我很乐意提供任何帮助。 TY)

尝试以下操作,您需要 return await fetch...

class AuthService {
    static async onHandleSignIn(login: string, password: string) {
        return await fetch(API_URL + 'api/Auth/signIn', {
            method: 'POST',
            headers: {'Content-Type': 'application/json'},
            body: JSON.stringify({
                'login': login,
                'password': password
            })
        }).then(response =>
            response.json().then(data => ({
                data: data,
                status: response.status
            })).then(res => {
                if (res.status === 200) {
                    localStorage.setItem('token', res.data.token);
                    return res.data
                }
            })
        )
    }
}

export default AuthService;