有没有办法从reducer行动中获得回报价值? (在React-Native中)

时间:2018-01-08 13:38:54

标签: reactjs react-native redux

我正在使用React-Native制作应用。

我有一个处于redux状态的数据数组。 我会说它是用户的阵列。

我想选择一个用户并直接从reducer状态获取他的数据。

但是我无法从减速器动作中获得返回值。 访问商店并使用getState()似乎并不是一个好方法。首先,它很难进入'存储'实例位于根组件中。

我有哪些选择?

  • 注意:我已经知道我可以添加另一个状态,例如' pickedUser'并通过行动设置它。但我想知道是否还有另一种直接获得国家的方式。

我正在寻找类似于调用动作并获得返回值的内容。

2 个答案:

答案 0 :(得分:2)

  

我想选择一个用户并直接从reducer状态获取他的数据。

没有像减速器状态那样的东西。 reducer是一个纯函数,它接受先前的状态和一个动作,并返回下一个状态。

它永远不应该由你自己调用,而是由redux来更新状态。你可以通过连接例如来监听状态变化使用react-redux包中的connect()函数将您的组件反应到商店。如果组件正在侦听更新状态的一部分,则会通过将更新的状态设置为props来触发重新呈现该连接组件。这是对状态变化做出反应的方法。

  

我正在寻找调用动作并获得返回值的内容。

Redux操作不返回任何内容。它们只是触发您可以听的全局状态的更改。如果您需要,例如获取数据以在操作中更新状态,您需要某种异步操作,例如: redux-thunk提供。

答案 1 :(得分:0)

新版本中,您可以将useSelector()和useDispatch()与redux一起使用...仍然需要对所有异步调用使用Redux-thunk