开发者问题收集

使用 createSelector (或任何记忆选择器) 和不带 mapStateToProps 的钩子

2019-12-24
10274

我想创建一个记忆选择器,当 redux 存储中的状态发生变化时,它将自动更新。

我在这里阅读了有关 Reselect 的 createSelector 的信息:

https://redux.js.org/recipes/computing-derived-data

我看到 mapStateToProps 正用于将选择器连接到存储。我目前仅使用带有钩子的 redux( useDispatchuseSelector ),而不使用 connect(mapStateToProps, mapDispatchToProps)

有没有办法使用 createSelector 但仍然不使用 connect ?如果没有,是否有其他方法来创建记忆选择器?

1个回答

是的,它们 几乎 等同。 useSelector 采用纯函数,在调用时会传递整个 redux 存储(即状态)。然而,与 Reselect 的选择器不同,它们无法接收传递的 props(除非通过闭包或柯里化)。除了少数极端情况外,大多数标准 Reselect 状态选择器都可以与 react-redux 的 useSelector 钩子一起使用。

Reselect 选择器是记忆选择器,因此 这里 是使用它们的部分。

useSelector redux 文档

Drew Reese
2019-12-24