gpt4 book ai didi

javascript - ReactJS - 渲染调用,但 DOM 未更新

转载 作者:可可西里 更新时间:2023-11-01 01:54:54 24 4
gpt4 key购买 nike

这在我身上发生过几次。我一直设法解决这个问题,但我仍然很想了解为什么会发生这种情况,以及我错过了什么。

基本上,如果我的 render 方法中有一个条件,它指定了我的 div 的类:

let divClass = this.state.renderCondition ? 'red' : 'blue';

默认情况下,我将状态中的 renderCondition 设置为 false。

如果我然后在按钮上定义一个 onClick 处理程序(如下所示),然后单击该按钮,同时调用渲染 IS,DOM NOT 已更新。也就是说类没有变化。

onClickCompile: function() {

this.setState({renderCondition: true}, function() {

synchronousSlowFunction();
});
}

这似乎与运行缓慢的同步代码有关,因为如果代码快速简单,DOM IS 会适当更新。

如果我将对 synchronousSlowFunction 的调用包装在 500 毫秒超时内,一切都会按预期进行。然而,我想了解我误解了什么,所以我不需要这个 hack。

最佳答案

你能分享按钮的onClick代码吗?我可能是错的,但这看起来像是一个错误设置的按钮 onClick 监听器。

确保在定义 onClick 回调时不带 (),即

<button onClick={this.something} />

代替:

<button onClick={this.something()} />

发布更多代码以便我们可以获得更好(更大)的图片

关于javascript - ReactJS - 渲染调用,但 DOM 未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41490837/

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