我正在使用React-Native制作一个应用程序。
我有一个redux状态的数据数组。我会说它是User的数组。
我想选择一个用户,并直接从reducer state获取他的数据。
但是我不能从reducer动作中得到一个返回值。而且访问一个存储并使用getState()似乎不是一个好方法。首先,访问位于根组件中的“store”示例太难了。
我有什么选择?
- 注意:我已经知道我可以添加另一个状态,如“pickedUser”,并通过操作设置它。但我想知道是否有另一种方法可以直接获得状态。
我正在寻找类似调用一个操作并获得返回值的方法。
3条答案
按热度按时间soat7uwm1#
我想选择一个用户,并直接从reducer state获取他的数据。
reducer状态是一个纯函数,它接受前一个状态和一个动作,然后返回下一个状态。
它不应该被自己调用,而是被redux调用来更新状态。你可以通过连接你的react组件来监听状态的变化,比如用react-redux包中的
connect()
函数将你的react组件连接到存储库。如果你的组件正在监听的状态的一部分更新了,它将通过传递更新的状态作为props来触发连接组件的重新呈现。这是对状态变化作出React的方式。我正在寻找类似调用一个操作并获得返回值的方法。
Redux动作不会返回任何东西。它们只会触发全局状态的变化,然后你就可以监听这些变化。如果你需要在一个动作中获取数据(更新状态),你就需要某种异步动作,比如redux-thunk。
bgtovc5b2#
在新版本中,您可以将useSelector()和useDispatch()与redux一起使用......但您仍然需要对所有异步调用使用Redux-thunk
hyrbngr73#
您可以将一个回调函数传递给操作,操作完成后将调用该函数,并将所需的值传递给该函数。例如,我在onClick回调中使用此函数来获取创建后需要导航到的实体ID。