我有一个关于我正在处理的应用程序的问题。我有一个触发 2 功能的按钮。其中一个是改变 dagre 图方向的 setState,另一个是React-flow-renderer
在屏幕中提供和拟合(居中)图形实例的函数。我认为它需要异步完成,因为第二个函数只有在我双击按钮或者我将 a 设置setTimeOut
为在 f.ex. 3 秒后执行时才会执行。所以这有效:
<Button
onClick={() => {
onChangeTreeLayout('LR');
setTimeout(() => {
reactFlowInstance.fitView();
}, 5000);
}}
>
这在第二次按下按钮后起作用:
<Button
onClick={() => {
onChangeTreeLayout('LR');
reactFlowInstance.fitView();
}}
>
所以我正在考虑做如下的事情,这样第二个函数将在第一个函数完成后立即执行:但它返回TypeError: undefined is not an object (evaluating 'a("LR").then')
<Button
onClick={() => {
onChangeTreeLayout('LR').then(() => reactFlowInstance.fitView());
}}
>
我能否获得一些帮助来实施最后一个并解决错误或以任何其他方式等待onChangeTreeLayout
执行,然后在reactFlowInstance.fitView()
第一个完成后立即触发?
尝试使用异步/等待:
<Button
onClick={async () => {
await onChangeTreeLayout('LR');
reactFlowInstance.fitView();
}}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句