如何使用ReactJS和Redux过滤列表中的项目?

时间:2020-10-10 00:14:51

标签: reactjs redux react-redux

我正在渲染元素列表并进行分页,列表的每一页包含3个元素。

我要插入``字段,用户可以在其中过滤所需的任何产品。过滤器正在工作。问题在于它仅过滤当前页面上的项目。

例如,如果我搜索列表第2页上的产品,则该产品不会出现。

你能告诉我如何解决吗?

由于我使用了大量文件,因此将代码放入codesandbox

谢谢。

1 个答案:

答案 0 :(得分:1)

您遇到的问题是您在过滤数据之前对数据进行了分页。

因此,我继续进行了修改,以过滤并分页代码。我使用class ConditionSlider extends Component { constructor (props) { super(props); this.state = { condition: 1 }; }; render() { const slideCalls = (e) => { slideChangeState(e); conditionText(e) }; const slideChangeState = (e) => { this.setState({ condition: e }) } let spanText; const conditionText = (e) => { if(e === '1' ) { spanText = <div>Very Poor</div> } else if (e === '2') { spanText = <div>Poor</div> } else if (e === '3') { spanText = <div>Okay</div> } else if (e === '4') { spanText = <div>Good</div> } else if (e === '5') { spanText = <div>Excellent</div> } } console.log(this.state.condition) return ( <div className="slide-class"> <RangeSlider value={this.state.condition} onChange={e => slideCalls(e.target.value)} min={1} max={5} step={1} size='sm' tooltip='off' variant='primary' /> <p>{this.spanText}</p> <p>{spanText}</p> </div> )} }; 钩子对其进行了过滤,因为在大型列表上进行过滤可能会很昂贵。

useMemo

Working codesandbox