Javascript 动作必须是普通对象。使用自定义中间件
会有什么问题? 未捕获错误:操作必须是普通对象。使用自定义中间件进行异步操作 配置存储:Javascript 动作必须是普通对象。使用自定义中间件,javascript,asynchronous,react-native,redux-thunk,Javascript,Asynchronous,React Native,Redux Thunk,会有什么问题? 未捕获错误:操作必须是普通对象。使用自定义中间件进行异步操作 配置存储: export default configureStore = () => { let store = compose(applyMiddleware(ReduxThunk))(createStore)(reducers); return store; } 行动 export const menulist = async ({ navigation }) => { return
export default configureStore = () => {
let store = compose(applyMiddleware(ReduxThunk))(createStore)(reducers);
return store;
}
行动
export const menulist = async ({ navigation }) => {
return async dispatch => {
try {
dispatch({ type: types.MENULIST_REQUEST_START })
let response = await menuListByCategories();
dispatch({ type: types.MENULIST_SUCCESS })
} catch (error) {
dispatch({ type: types.MENULIST_FAILED })
}
}
}
你用错了方法 在Redux中,每个操作都必须返回一个对象,这是必须的! 因此,您的分派,这是一个函数,应该以这种方式调用 此外,您只需要声明async返回dispatch的函数。async关键字确定以下函数将返回承诺。由于第一个函数(menulist)将返回第二个函数(dispatch one)返回的承诺,因此不必指定它
export const menulist = ({ navigation }) => async (dispatch) => {
try {
dispatch({ type: types.MENULIST_REQUEST_START })
let response = await menuListByCategories();
dispatch({ type: types.MENULIST_SUCCESS })
} catch (error) {
dispatch({ type: types.MENULIST_FAILED })
}
}
}
你用错了方法 在Redux中,每个操作都必须返回一个对象,这是必须的! 因此,您的分派,这是一个函数,应该以这种方式调用 此外,您只需要声明async返回dispatch的函数。async关键字确定以下函数将返回承诺。由于第一个函数(menulist)将返回第二个函数(dispatch one)返回的承诺,因此不必指定它
export const menulist = ({ navigation }) => async (dispatch) => {
try {
dispatch({ type: types.MENULIST_REQUEST_START })
let response = await menuListByCategories();
dispatch({ type: types.MENULIST_SUCCESS })
} catch (error) {
dispatch({ type: types.MENULIST_FAILED })
}
}
}
正如您的错误明确指出的那样:动作创建者应该返回带有
类型属性和可选负载的普通对象。在这里,您将返回一个接受dispatch
参数的函数。正如您的错误明确指出的那样:操作创建者应该返回带有type
属性和可选负载的普通对象。这里返回一个接受dispatch
参数的函数。现在没有错误。但它不会进入街区。在试捕区内?它是否正确地连接在您的容器中?有错误吗?有。有人打电话来。但这似乎超出了问题的范围。无论哪种方式,如果没有更多信息,我都无法为您提供更多帮助,您是否尝试使用redux logger查看发生了什么?menuListByCategories调用不正确。谢谢它成功了,现在没有错误了。但它不会进入街区。在试捕区内?它是否正确地连接在您的容器中?有错误吗?有。有人打电话来。但这似乎超出了问题的范围。无论哪种方式,如果没有更多信息,我都无法为您提供更多帮助,您是否尝试使用redux logger查看发生了什么?menuListByCategories调用不正确。谢谢它起作用了。