引用前一个状态时,如何解决警告在setState中使用回调

how to solve warning Use callback in setState when referencing the previous state

对于这段代码,我收到了 eslint 警告:warning Use callback in setState when referenced the previous state react/no-access-state-in-setstate

如何解决?

const sketch = await ImageManipulator.manipulateAsync(this.state.sketch, [{ rotate: 90 }], {
  base64: true,
  format: ImageManipulator.SaveFormat.PNG,
})
this.setState({ sketch: sketch.uri })

显示第一行警告(const sketch =....)。

您收到警告是因为 this.setState({ sketch: sketch.uri }) 行。

您可以执行类似以下代码的操作来删除 lint 警告。

const sketch = await ImageManipulator.manipulateAsync(this.state.sketch, [{ rotate: 90 }], {
  base64: true,
  format: ImageManipulator.SaveFormat.PNG,
})
this.setState(() => {
  return {
    sketch: sketch.uri,
  }
})