javascript - this.setState() 在 this.setState() 的回调中
问题描述
我可以this.setState()
在传递给的回调定义中显式调用吗this.setState()?
this.setState(
{
openA:true
},
() => {
this.setState({
openB: false
})
}
)
解决方案
可以这样做,这将导致 2 次重新渲染而不是 1 次。通常不需要这样做。
如果setState
是独立的,它可以是:
this.setState({ openA:true });
this.setState({ openB:false });
如果更新状态相互依赖,则应使用 updater 函数:
this.setState({ openA:true });
this.setState(state => ({ openB: !state.openA }));
推荐阅读
- qt - 在 QML 中编辑部分图像的属性
- scala - 为什么 spark 的数据集中没有 reduceBykey
- powerbi - 带有切片器的 Power BI Sankey
- maven - 如何将 maven 项目导入现有的 android 项目?
- python - 如果给出空参数,如何处理 sys.argv
- powershell - 我想从包含广告组的文件中检索父广告组
- java - 如何在 wso2product 上将 TLS 1.0 升级到 TLS 1.2
- android - Android - 如何创建像 WhatsApp 聊天这样的操作栏?
- java - 如何在 Android Studio 中为图像创建色差滤镜?
- android - 自动滚动到包含在嵌套滚动视图中的特定回收器视图似乎不适用于 Android X