在过去,当使用 React 和 Redux 时,有些人使用选择器,有些人不使用。
(我认为它是“重新选择” npm package,但我不确定)。
但是,当 React 有 Hooks 时,我认为我们可以使用
useSelector()
useDispatch()
而不是所有的mapStateToProps
, mapDispatchToProps
, connect(...)(Component)
。但是,我们必须使用useSelector()
? 之前,我们可以选择使用选择器或不使用它。是不是有了 React Hooks 和 Redux 之后,就一定要使用选择器?
是的,您必须使用useSelector
. 我认为你在那里有点困惑:如果你要使用connect
with mapStateToProps
,你总是在那里使用一个选择器函数:mapStateToProps
那个选择器函数,可能是由多个子选择器组成的,你可能是内联编写的或从某个地方导入的.
但是,如果您想要状态中的任何值,您永远不会“选择不使用选择器”。我认为你的“什么是选择器”的概念有点过于严格。
您可以通过两种方式使用它:
// in your slice file
export const someSelector = state => state.something;
// in your component file
import someSelector from './sliceFile';
// in your component
useSelector(someSelector)
或者只是内联:
useSelector(state => state.something)
这两个都是 selectors,即使第二个看起来不太像它。
一个只是提取到一个函数中,另一个是内联函数。两者都完全可以使用,从 JS 的角度来看,它们之间没有太大区别。
正如您提到的重新选择:重新选择使“记忆选择器”,这是它的另一个概念。为此,您可以自由使用或不使用它,您就在那里。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句