Javascript 为什么我会得到';。那么不是函数错误';?
我正在尝试在我的购物车操作中分派和调用函数GetUnaddedPartItems:Javascript 为什么我会得到';。那么不是函数错误';?,javascript,reactjs,asynchronous,react-native,redux,Javascript,Reactjs,Asynchronous,React Native,Redux,我正在尝试在我的购物车操作中分派和调用函数GetUnaddedPartItems: cartRedirect = () => { this.props.dispatch(getUnaddedCartItems().then((result) => { if (result.length === 0) { this.setState({unaddedCartItems: result}); } }).catch
cartRedirect = () => {
this.props.dispatch(getUnaddedCartItems().then((result) => {
if (result.length === 0) {
this.setState({unaddedCartItems: result});
}
}).catch(err => {
Actions.cart();
}));
}
我能够进入我的行动,突破点击中第一行,但由于某种原因,不会移动到下一行,并立即跳出
然后我得到了错误。我不明白为什么它不尝试进入我的异步调用。有人能告诉我为什么会发生这种情况以及如何修复错误吗
您应该发送thunk操作,然后处理返回的承诺
this.props.dispatch(createMyThunkActionReturningPromise())
.then(handleMyPromise)
.catch(handleMyPromseError);
问题是您正在分派承诺,而不是函数(thunk action)。是否
getUnaddedPartItems
返回承诺,还是应该在那次调用之后再给我一个呢?我想你在调度调用之后缺少了一个)
,你真的想要在调度调用之后返回一个getUnaddedPartItems
的结果。getUnaddedPartItems并没有返回一个承诺,而是返回了一个函数,我只是尝试了一个在操作中调用AsyncStorage,而不在调度调用中包装,但随后我得到一个错误语句“操作必须是普通对象。使用自定义中间件进行异步”,但我不想使用任何中间件。我认为异步存储应该回报一个承诺。你连接好thunk中间件了吗?返回函数的操作仅适用于redux thunk