【发布时间】:2021-09-14 19:22:00
【问题描述】:
尝试根据这个答案对数据表进行过滤:Data Table filtering using react-data-table-component
过滤成功。但是在过滤之前,this.filteredItems 是没有定义的。
- 如果我使用 data=
{this.filteredItems},它将显示未定义,但一旦我过滤,数据将开始显示 - 如果我使用
data={result},它将显示所有结果但不允许我过滤
class Table extends React.Component {
... ommitted irrelevant codes
render() {
const result = this.props;
const getSubHeaderComponent = () => (
<FilterComponent
onFilter={(e) => {
const newFilterText = e.target.value;
this.filteredItems = result.filter( //Filtering works with this.filteredItems
item => item.name
&& item.name.toLowerCase().includes(newFilterText.toLowerCase())
);
this.setState({ filterText: newFilterText });
}}
onClear={this.handleClear}
filterText={this.state.filterText}
/>
);
return (
<React.Fragment>
<DataTable
columns={columns}
data={this.filteredItems} // Only if i filter, then data will appear. Else it will be undefined because the original data is from result
subHeader
subHeaderComponent={getSubHeaderComponent()}
/>
</React.Fragment>
);
}
}
【问题讨论】:
标签: reactjs