试图在Redux中创建一个动作来调用我的API。我知道操作必须具有定义的类型,所以不确定为什么我会收到此错误
试图寻找类似的帖子,但没有一个提供我需要的答案
export const getTracks = () => dispatch => {
axios
.get("/api/tracks/all")
.then(res =>
dispatch({
type: GET_TRACKS,
payload: res.data
})
)
.catch(err =>
dispatch({
type: GET_TRACKS,
payload: null
})
);
};
编辑:MaieonBrix帮助我意识到,我的“GET_TRACKS”的进口是从那里我的动作类型所在的文件丢失:
import { GET_ERRORS, GET_TRACKS } from "./types";
文件types.js:
export const {GET_ERRORS} = 'GET_ERRORS';
export const {GET_TRACKS} = 'GET_TRACKS';
答案 0 :(得分:1)
当您分派undefined
类型的操作时,会发生此错误:
dispatch({ type: variableThatMightBeUndefined })
这意味着保存您的“ GET_TRACKS”字符串的GET_TRACKS变量未定义。
如果您更新帖子的操作方式(可能与此相关),我会更新我的答案
更新:
这里的问题是如何导出类型
// change this
export const { GET_TRACKS } = ...
// into this
export const GET_TRACKS = ...
以下是有关命名导出的文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export