我正在尝试在我的React应用程序中实现一个基本过滤器。我有两个由Redux管理的道具。它们看起来如下所示:
const mapStateToProps = state => {
return {
groceries: getSortedGrocers(state.groceries),
searchFilter: state.searchFilter
};
};
我面临的问题是更新
searchFilter
时,我需要过滤groceries
数组,该数组最终在我的Component实例中是this.props.groceries
。最佳的设计模式是什么?我是否应该使用生命周期事件,以便每当更新
searchFilter
时都过滤groceries
?我可以针对如何正确处理过滤问题找到正确的文档吗,如果存在searchFilter
,我可以缩小要显示的groceries
范围?最终,在某个地方将存在诸如此类的东西:if ( this.props.searchFilter ) { groceries.filter( ... ) }
我不完全确定在哪里处理过滤逻辑。 最佳答案
您应该已经在Redux中的getSortedGrocers函数中完成了过滤。
const mapStateToProps = state => {
return {
groceries: getSortedGrocers(state.groceries, state.searchFilter)
};
};
在Redux getter中:
export const getSortedGrocers = (groceries, filter) => {
// do sorting here
};
据我所知,这是用于筛选内容的标准设计模式。您也可以对render方法进行过滤,但是不鼓励这样做(尽管效率不高,也很有趣)。
关于javascript - 在mapStateToProps中收到另一个 Prop 时更新 Prop ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49060717/