gpt4 book ai didi

javascript - 在 componentWillUpdate 或 componentDidUpdate 中重复调用 setState?

转载 作者:数据小太阳 更新时间:2023-10-29 06:09:19 24 4
gpt4 key购买 nike

我试图找出作为 Prop 传入的 React 组件中背景图像的方向。

我首先创建一个图像对象并将其 src 设置为新图像:

  getImage() {
const src = this.props.url;
const image = new Image();
image.src = src;

this.setState({
height: image.height,
width: image.width
});
}

在使用高度和宽度更新状态后,我尝试在 componentDidUpdate() 中调用 getOrientation():

  getOrientation() {
const { height, width } = this.state;
if (height > width) {
this.setState({ orientation: "portrait" });
} else {
this.setState({ orientation: "landscape" });
}
}

然后我得到以下错误:

Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate.

知道这里发生了什么吗?

Link to Sandbox

最佳答案

您需要像这样包含 prevProps:

componentDidUpdate(prevProps, prevState) {
...
}

有关更多信息,请参阅 here .

关于javascript - 在 componentWillUpdate 或 componentDidUpdate 中重复调用 setState?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53421688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com