使用reselect反应选择器 - createStructuredSelector

问题描述 投票:0回答:1

我想知道如果你提出一个想法,我将不胜感激。

我在我的一个项目中第一次使用重新选择包。我在下面的链接上创建makeGetVisibleTodos选择器然后如果我使用createStructuredSelector将此选择器链接到下面的组件;

const mapStateToProps = createStructuredSelector({
  visibleTodos: makeGetVisibleTodos()
});

它有用吗?我的意思是如果我多次使用这个组件,我是否因为共享组件而遇到任何问题?通过这种方式,我没有像mapStateToProps那样为makeMapStateToProps创建一个函数。

https://github.com/reduxjs/reselect#sharing-selectors-with-props-across-multiple-component-instances

谢谢

reactjs redux selector reselect
1个回答
1
投票

这不会按预期工作,因为在创建结构化选择器时只调用makeGetVisibleTodos一次。生成的选择器将在所有组件实例之间共享。如果这是一个问题(因为选择器结果依赖于组件道具,您需要添加一个间接级别,如reselect docs section you linked中所述:

const mapStateToProps = () => createStructuredSelector({
  visibleTodos: makeGetVisibleTodos()
});
© www.soinside.com 2019 - 2024. All rights reserved.