繁体   English   中英

在react-native中使用redux-thunk与异步调度

[英]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是不安全的,因为这可能是一些promiseasync问题,对吗? 那我以后很可能会成为别的东西吗?

使用异步操作方法来执行基于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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM