reactjs - setState 回调在 React 16 中的渲染完成之前执行
问题描述
我有一段代码,
this.setState({ generateGraphTableforPDF: true }, () => {
this.generatePDFData(true);
this.setState({ generateGraphTableforPDF: false });
});
此 setstate 回调在渲染完成之前执行,因此在 dom 中没有表,因此会生成空的 pdf。
我试图删除回调函数并将它们写入 componentDidUpdate 并设置超时 0。但问题是这在某些情况下也失败了。
解决方案
你可以这样做,
this.setState({ generateGraphTableforPDF: true }, () => {
this.generatePDFData(true);
});
function generatePDFData(bool){
//Your logic to generate PDF
this.setState({ generateGraphTableforPDF: false });
}
推荐阅读
- r - 如何在 r 中运行具有二元结果和连续输入的广义线性混合回归
- java - 当我尝试返回字符串时出现错误
- algorithm - 具有不确定距离度量的分组/聚类算法
- ios - Flutter 发布版本从终端失败
- javascript - Javascript 使用 parseURL 函数解析 URL
- java - 如何使用 JSP Servlet Login 设置 Tomcat 服务器
- flutter-web - 为什么我的 Flutter Web 应用程序在运行 webdev serve 时无法运行
- python - 是否可以为 OneHotEncoder 中的某些列指定 handle_unknown = 'ignore' 并为其他列指定 'error'?
- google-cloud-run - 如何在 GKE 上使用 Cloud Run 与 Pub/Sub 集成
- react-native - 如何避免不变的违反:文本字符串必须在一个
零件 ?我对 react-native 比较陌生