【发布时间】:2021-11-09 06:00:40
【问题描述】:
新的反应,我正在使用一个类组件并得到 filteredItems 的未使用状态字段错误
不明白为什么当我已经在我的数据表组件中使用它们时它没有被使用
constructor(props) {
super(props);
this.state = {
filterText: '',
filteredItems: '', //Initalize state
};
}
// ... ommitted other parts
render() {
const result = arr1.map(item => item[1]);
// this.filteredItems = result;
if (result) {
this.setState({
filteredItems: result, //Trying to setState with result array. Getting unused state fields error
});
}
return (
<React.Fragment>
<DataTable
columns={columns}
data={this.filteredItems} // Trying to Using this.filteredItems
// ... ommitted other parts
【问题讨论】:
-
this.filteredItems不指向您的状态值。应该改成this.state.filteredItems -
我现在收到了 >> 超过了最大更新深度。当组件在 componentWillUpdate 或 componentDidUpdate 中重复调用 setState 时,可能会发生这种情况。 React 限制了嵌套更新的数量以防止无限循环。
-
这是由于
setState在render方法中被调用。您可以将arr1.map(item => item[1])行直接移动到DataTable的data属性中作为快速修复(同时删除setState调用)。