第三方 React 组件未更新
3rd party React component not updating
我有一个调用名为 ReactCollapsingTable
的第 3 方组件的组件,它看起来像这样:
export class MyComponent extends Component <DataTableProps, {rows: any, columns: any} > {
constructor(props: DataTableProps) {
super(props);
this.state = {rows: this.getRows(), columns: this.getColumns() };
}
getRows() {
...
return rows;
}
getColumns() {
...
return columns;
}
componentDidUpdate(prevProps: Readonly<DataTableProps>): void {
if (!_.isEqual(this.props, prevProps)) {
this.setState({rows: this.getRows(), columns: this.getColumns() });
}
}
render() {
return <ReactCollapsingTable
rows={this.state.rows}
columns={this.state.columns}
/>;
}
}
当我的组件更新时,它会将 this.state.rows
和 this.state.columns
的值更改为 this.setState
。在我的 render
函数中,我将 this.state.rows
和 this.state.columns
的值记录到控制台,并且它们按预期进行了更改。但是 ReactCollapsingTable
不会改变。我做错了什么还是那个组件?如果那是第 3 方的组件故障,是否有解决方法?也许卸载它并再次放回去,或者沿着这些路线进行。谢谢。
显然,这是由第 3 方组件引起的。尝试使用该库的不同版本,解决了我的问题。另外,使用不同的库我也没有遇到这个问题。
我有一个调用名为 ReactCollapsingTable
的第 3 方组件的组件,它看起来像这样:
export class MyComponent extends Component <DataTableProps, {rows: any, columns: any} > {
constructor(props: DataTableProps) {
super(props);
this.state = {rows: this.getRows(), columns: this.getColumns() };
}
getRows() {
...
return rows;
}
getColumns() {
...
return columns;
}
componentDidUpdate(prevProps: Readonly<DataTableProps>): void {
if (!_.isEqual(this.props, prevProps)) {
this.setState({rows: this.getRows(), columns: this.getColumns() });
}
}
render() {
return <ReactCollapsingTable
rows={this.state.rows}
columns={this.state.columns}
/>;
}
}
当我的组件更新时,它会将 this.state.rows
和 this.state.columns
的值更改为 this.setState
。在我的 render
函数中,我将 this.state.rows
和 this.state.columns
的值记录到控制台,并且它们按预期进行了更改。但是 ReactCollapsingTable
不会改变。我做错了什么还是那个组件?如果那是第 3 方的组件故障,是否有解决方法?也许卸载它并再次放回去,或者沿着这些路线进行。谢谢。
显然,这是由第 3 方组件引起的。尝试使用该库的不同版本,解决了我的问题。另外,使用不同的库我也没有遇到这个问题。