我正在为数据过滤构建react-redux库。它的基本工作方式是通过装饰您的过滤器组件,以便它可以访问要过滤的数据。装饰组件使用库的Filter
组件。这大致是这样的:
const MyComponent = (props) => {
<Filter
prop="propA" // What prop to filter in the data
operator="AND" // Use the AND operator between keywords
component={FilterList} // The component used to render the filter. It sets the keywords to filter with a callback passed to it's props
/>
};
export default filterDecorator({name: 'myFilter', getData: (state) => state.data })(MyComponent);
我希望最终用户能够通过Filter
的道具设置过滤选项。例如,在使用关键字进行过滤时,我希望能够通过道具AND
设置逻辑运算符(OR
或operator
)。该库还导出一个函数来检索过滤后的数据。由于此函数需要了解过滤器的选项,但它无法访问props,因此我使用redux状态(Filter
组件在更新operator
道具时调度操作。)
我觉得这很尴尬。感觉不对,两个人在两个不同的地方都有信息:redux的状态和道具。
这种情况是否有任何已知的模式?