【发布时间】:2022-01-14 05:08:56
【问题描述】:
我正在使用 React 和 Redux 进行注册,并且我已经完成了我需要的所有操作和 reduser,但是我收到了这个错误:
Expected an assignment or function call and instead saw an expression
这个文件是一个 Action Creator,通过它我使用 Dispatch 与 Reducer 进行通信。
auth.ts:(动作创建者)
export const signupActionCreator = (
email: string,
name: string
) => {
return async (dispatch: Dispatch<UserTypes>) => {
return AuthService.signup(email, name)
.then((res) => {
// tttt
localStorage.setItem('token', res.data)
dispatch({
type: Types.SIGNUP,
// payload: res.data.message,
// tttt
payload: res.data
});
return Promise.resolve();
})
.catch((err) => {
console.log(err);
return Promise.reject();
});
};
};
这是文件,我为每个操作使用了一个类型,我使用了 Enum。
types.ts:
export enum Types {
SIGNUP = "SIGNUP"
}
通过这个文件,我能够与后端进行通信。
authServices.ts:
import API_URL from "../http-common";
import axios from "axios";
const signup = (email: string, name: string) => {
return axios.post(API_URL + "/authentication/sign-up", { email, name });
};
const AuthService = {
signup,
};
export default AuthService;
通过这个文件我可以定义接口。
auth.d.ts:
export interface UserData {
name: string;
email: string;
}
export interface UserState {
data: UserData[];
}
export interface UserAction {
type: string;
payload: any;
}
export type UserTypes = UserAction;
【问题讨论】:
-
你从哪里得到错误?您在哪里调用动作创建器?
标签: reactjs typescript redux