渲染期间无法更新,使用Image onError函数

时间:2018-07-10 08:55:33

标签: javascript react-native

我刚得到warning关于渲染期间无法更新的信息。建议我更新ComponentWillMount。但是我在检查图像是否为Error (not Loaded)后更改了状态,因此必须在渲染功能上更改状态。

  _onError = (index) => {
    let data = this.state.data;
    if (data[index].imageError === false) {
      data[index].imageError = true;
      this.setState({ data: data });
    }
  }

render() {
   this.state.data.map((n, index) => {
      <Image
         source={
            n.imageError
            ? rightImg
            : {
               uri: `${notRightImg}`
               }
          }
          style={{ width: 50, height: 50 }}
          onError={this._onError(index)}
        />
   })
}

1 个答案:

答案 0 :(得分:0)

函数this.state.dataonError的引用未更改。您可以尝试使用:

this.setState({ data: [...data] });

替换:

this.setState({ data: data });