gpt4 book ai didi

reactjs - 昂贵的函数阻止 render() 更新

转载 作者:行者123 更新时间:2023-12-03 13:45:03 24 4
gpt4 key购买 nike

在我的(类)组件中,我想在 _expenseFunction 的持续时间内显示加载微调器。值isLoading在函数执行前的状态发生了变化,但在_expectiveFunction完成之前不会重新渲染(spinner不旋转)。

我尝试使用componentDidUpdate和forceUpdate,但没有成功。

_makeCalculation() {
this.setState(
{ isLoading: true },
() => this._expensiveFunction(),
);
}


_expensiveFunction() {
console.log(this.state.isLoading); // => true
// ***
this.setState({ isLoading: false });
}

最佳答案

一个常见的技巧是依赖 setTimeout():

_makeCalculation() {
this.setState(
{ isLoading: true },
() => setTimeout(this._expensiveFunction, 0),
);
}

关于reactjs - 昂贵的函数阻止 render() 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57311241/

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