使用重新选择反应选择器-createStructuredSelector

时间:2019-02-21 07:54:13

标签: reactjs redux selector reselect

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

我第一次在一个项目中使用重新选择包。我会根据下面的链接创建makeGetVisibleTodos选择器,然后使用createStructuredSelector;

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

可以吗?我的意思是,如果我多次使用此组件,由于共享该组件是否会遇到任何问题?这样,我没有为mapStateToProps创建像makeMapStateToProps这样的函数。

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

谢谢

1 个答案:

答案 0 :(得分:1)

这将无法正常工作,因为在创建结构化选择器时,您仅调用一次makeGetVisibleTodos。结果选择器将在所有组件实例之间共享。如果这是个问题(由于选择器的结果取决于组件属性,则需要按照reselect docs section you linked中所述添加一个间接级别:

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