【发布时间】:2019-12-10 04:22:17
【问题描述】:
在我的(类)组件中,我想在 _expensiveFunction 期间显示加载微调器。 值isLoading在函数执行前的状态发生了变化,但在_expensiveFunction完成之前不会重新渲染(spinner不旋转)。
我用 componentDidUpdate 和 forceUpdate 尝试过,但没有成功。
_makeCalculation() {
this.setState(
{ isLoading: true },
() => this._expensiveFunction(),
);
}
_expensiveFunction() {
console.log(this.state.isLoading); // => true
// ***
this.setState({ isLoading: false });
}
【问题讨论】:
-
您好,您能否分享一下您如何使用
isLoading的代码,在获取数据后让您的setState函数像您在_makeCalculation中所做的那样同步 -
为什么不将
expensiveFunction中昂贵部分之前的状态设置为isLoading: true? -
@devserkan 试过了,但没有成功。