首页 > 解决方案 > 使用重新选择反应选择器 - createStructuredSelector

问题描述

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

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

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

它有效吗?我的意思是如果我多次使用这个组件,我是否因为共享该组件而遇到任何问题?这样,我没有为mapStateToPropslike创建函数makeMapStateToProps

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

谢谢

标签: reactjsreduxselectorreselect

解决方案


这不会按预期工作,因为您makeGetVisibleTodos在创建结构化选择器时只调用一次。生成的选择器将在所有组件实例之间共享。如果这是一个问题(因为选择器结果取决于组件道具,您需要添加一个间接级别,如您链接的重新选择文档部分中所述:

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

推荐阅读