React Native ListView row not re-rendering after state change

前端 未结 2 1443
独厮守ぢ
独厮守ぢ 2021-02-14 13:44

React Native ListView: Rows are not re-rendering after datasource state has changed.

Here is a simplified version of my code:



        
2条回答
  •  一生所求
    2021-02-14 14:14

    react is smart enough to detect changes in dataSource and if the list should be re-rendered. If you want to update listView, create new objects instead of updating the properties of existing objects. The code would look something like this:

    let newArray = this._rows.slice();
    newArray[rowID] = {
      ...this._rows[rowID],
      newPropState: true,
    };
    this._rows = newArray;
    
    let newDataSource = this.ds.cloneWithRows(newArray);
    this.setState({
      dataSource: newDataSource
    });
    

    You can read more about similar issue on Github

提交回复
热议问题