小编ala*_*ois的帖子

React Redux - 在Reducer中添加异步方法是一种反模式吗?

我对整个react-native/redux世界都很陌生,也许这个问题听起来很愚蠢:)

我知道对于API调用或类似的东西,惯例是通过中间件来做到这一点,但它总是必要的(它增加了很多样板).

我成功地在reducer中添加了异步方法来管理设备API连接,例如In-App或Local Notifications,但我想知道以这种方式处理它是否可行.

例如在我的reducer中有这样的方法:

function initInApp(state, itemSkus){
  init(state, itemSkus);
  return {
    ...state,
    itemSkus: itemSkus,
  }
}
Run Code Online (Sandbox Code Playgroud)

而这个管理异步部分:

async function init(state, itemSkus){
  try {
    if( !state.isInit ){
      const prepare = await Promise.all(RNIap.prepareAndroid());
      return{
        ...state,
        isInit: true,
        errorCode: false,
      }
    }
    else {
       return ...state;
    }
  } catch (errorCode) {
    return{
      ...state,
      isInit: false,
      errorCode: errorCode,
      itemSkus: itemSkus
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

也许它在性能方面效率不高或难以维护.你有什么想法?

谢谢 :)

reactjs react-native redux

9
推荐指数
3
解决办法
5350
查看次数

标签 统计

react-native ×1

reactjs ×1

redux ×1