【问题标题】:Redux : New value returned from reducer not updating in StateRedux:从减速器返回的新值未在状态中更新
【发布时间】:2017-12-29 17:30:55
【问题描述】:

在初始加载期间,reducer 返回的值正在更新。 但是后续返回的值不会在状态中更新。

在reducer代码下面,connectToTradeServer是一个函数,它可以对另一个站点进行axios调用并获取数据。

export default (state = [{"_id":"helkjdflj"}], action) => {
    switch (action.type) {
        case TRADE_LIST_UPDATED: {
            connectToTradeServer((err, res) => {
               if (err) {
                    return state;
                } else {
                   return res;
               }
            });
    }
    default: return state;
  }
}

我在这里做错了什么? 提前致谢。

【问题讨论】:

  • 为什么默认大小写在 switch 之外?

标签: reactjs redux


【解决方案1】:

Redux 的 reducer 本质上是一个同步函数。你里面有异步操作。 connectToTradeServer 中的 return 语句什么也不做。我建议查看redux-thunkredux-saga 项目以了解如何处理异步操作。

TRADE_LIST_UPDATED 的情况下,您也没有return。最后,每个 reducer 调用都会返回初始状态。

【讨论】:

  • 非常感谢。我是 redux 的新手,所以对事情的工作方式仍然有些困惑。将检查您的建议。
猜你喜欢
  • 2019-07-05
  • 2021-12-03
  • 2016-11-24
  • 1970-01-01
  • 2020-05-10
  • 2018-09-12
  • 2021-07-18
  • 2016-11-20
相关资源
最近更新 更多