[英]Using redux-thunk in react-native with async dispatch
我在我的本机代码中设置了redux-thunk。
在mapDispatchToProps中,我有:
const mapDispatchToProps = dispatch => {
return {
login: (state, navigator) => dispatch({
type: "USER",
payload: loginFunc(state, navigator)
}),
}'
}
login函数是一个firebase函数,它返回一个promise链,该promise链最终返回我需要的对象。
但是,在我的reducer中,我的有效负载看起来像是一个Promise或一些时髦的对象。 看起来像:
{
a: someVal,
b: sommeOtherVal,
c: someMoreVal,
...ValsUpToI.
i: {
// The values I actually need show up
}
这让我感到困惑,因为当我尝试做payload.myValue
,我的redux状态变得undefined
。 我认为仅执行payload.i
是不安全的,因为这可能是一些promise
或async
问题,对吗? 那我以后很可能会成为别的东西吗?
使用异步操作方法来执行基于redux文档中提到的基于promise的功能API调用。
const mapDispatchToProps = dispatch => {
return {
login: (state, navigator) => {
return loginFunc(state, navigator).then(
response => dispatch({
type: "USER",
payload: response
}),
error => console.log('An error occurred.', error)
)
}
}
这样,您可以调用基于promise的函数并正确利用响应或错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.