我有一個關于我正在處理的應用程式的問題。我有一個觸發 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()第一個完成后立即觸發?
uj5u.com熱心網友回復:
嘗試使用異步/等待:
<Button
onClick={async () => {
await onChangeTreeLayout('LR');
reactFlowInstance.fitView();
}}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/451963.html
標籤:javascript 反应 异步 达格勒 反应流
