gpt4 book ai didi

javascript - react - 如何强制元素立即重绘

转载 作者:行者123 更新时间:2023-12-01 01:58:45 25 4
gpt4 key购买 nike

我在 react 组件中有一个切换按钮:

toggleSpeak = () => {
this.setState({buttonOn: !this.state.buttonOn});
}

按钮根据其状态改变其样式:

 <img key="headphones" className={audioclass} src={this.state.buttonOn ? white : black} onClick={this.toggleSpeak}/>

这也会触发子组件中的一些内容:

play={this.state.buttonOn}

这会触发一些语音合成播放,有时需要一段时间。问题是我希望用户立即意识到有事情发生。但是,该按钮不会立即更改其样式。只要我触发其他内容,无论是通过上面的子级传递属性,还是通过触发 redux 操作,它仍然会延迟更改颜色几秒钟。

我想立即改变颜色,不要拖延,这样用户就知道不要继续推它。我怎样才能做到这一点?

最佳答案

this.setState({}) 函数确实是异步的,因此考虑到触发器中的所有内容,您所声明的内容可能在很短的毫秒内为真

toggleSpeak = () => {
this.setState({buttonOn: !this.state.buttonOn});
}

您所说的明显延迟应该是不明显的。我认为延迟是由其他地方造成的。 (假设您需要在 this.setState({}) 之前运行一些其他同步代码。请向我们展示更多相关代码,以便我们更好地掌握正在发生的情况。

关于javascript - react - 如何强制元素立即重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50788885/

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