reactjs - 创建动作时出错:动作必须是普通对象
问题描述
调用操作时出现错误。我使用 dispatch 传输对象,但在此示例中它不起作用。告诉我错误是什么以及如何正确实施?
api.js
export const getTables = () => getReq('https://test.online/tests');
动作.js
export const getTables = () => {defaultAction("GET_TEST", Api.getTables)();}
实用程序.js
export const defaultAction = (constant, api) => async () => {
const result = await api();
return (dispatch) => {
return dispatch({type: constant, payload: result})
};
};
方法.js
export const getReq = (url) => {
const promise = axios({
method: 'get',
url: url,
credentials: 'include',
mode: 'cors',
headers: {
Authorization: localStorage.getItem('token'),
},
});
return promise.then((response) => response.data);
};
解决方案
您的getTables
操作创建者缺少return
语句并返回undefined
。或者只是跳过{}
export const getTables = () => defaultAction("GET_TEST", Api.getTables)()
除了你在那里进行的奇怪的“构建一个函数然后立即执行它”模式之外,你也可以只是
export const getTables = defaultAction("GET_TEST", Api.getTables)
具有相同的效果。
推荐阅读
- javascript - 如何从具有 AJAX 请求的网站获取 HTML 页面而不会出现 CORS 错误?
- c - 程序找不到矩阵的转置
- shared-libraries - 加载时重定位如何处理共享共享库?
- python - 使用 markdown2 将 Markdown 表转换为 HTML
- python - 如何防止 PyTorch 对我分配的值进行少量更改
- reactjs - Material-UI 主题化组件库
- java - intellij 无法解析一些 javafx 类
- python - 为什么在使用参数定义为 *args 和 **kwargs 的函数中传递参数不是强制性的?
- sql - 具有动态 LAG 和/或重置累积 SUM 的 SQL 拼图
- html - 添加边距,在 Bootstrap 中无法按我想要的方式工作