我想知道如果你提出一个想法,我将不胜感激。
我在我的一个项目中第一次使用重新选择包。我在下面的链接上创建makeGetVisibleTodos
选择器然后如果我使用createStructuredSelector
将此选择器链接到下面的组件;
const mapStateToProps = createStructuredSelector({
visibleTodos: makeGetVisibleTodos()
});
它有用吗?我的意思是如果我多次使用这个组件,我是否因为共享组件而遇到任何问题?通过这种方式,我没有像mapStateToProps
那样为makeMapStateToProps
创建一个函数。
https://github.com/reduxjs/reselect#sharing-selectors-with-props-across-multiple-component-instances
谢谢
这不会按预期工作,因为在创建结构化选择器时只调用makeGetVisibleTodos
一次。生成的选择器将在所有组件实例之间共享。如果这是一个问题(因为选择器结果依赖于组件道具,您需要添加一个间接级别,如reselect docs section you linked中所述:
const mapStateToProps = () => createStructuredSelector({
visibleTodos: makeGetVisibleTodos()
});