簡體   English   中英

如何強制功能組件在提交時重新呈現?

[英]How to force a functional component to rerender on submit?

我有使用onChange更新其表單狀態(X)的表單輸入,然后我有一個表單onSubmit提交,它必須做兩件事:

  1. 使用來自 state(X) 的信息更新單獨的 state(Y)
  2. 運行一個將使用 state(Y) 的實際函數
const [ethValue, setEthValue] = React.useState({ethValue: 0});

const submit = (e) => {
    setEthValue(() => { return { ethValue: formData.value } })
    e.preventDefault();
    runContractFunction()
};

它正在工作,但是為了完成任務,由於設置函數的異步性質,我必須按兩次提交按鈕。 為了完成設置,我決定使用重新渲染,以便完成狀態設置,但我嘗試的兩種方法都不起作用。

由於我使用功能組件,我不能使用forceUpdate()並且我不能將useEffect放在我的submit函數中,因為它會將useEffect鈎子放在組件函數體之外。

我想做,所以你必須按一次提交,而不是兩次才能工作。 我該如何解決這個問題?

在此先感謝您的時間!

將該“Y”值作為參數傳遞給函數,該參數將其用作狀態。

const submit = (e) => {
    setEthValue(() => { return { ethValue: formData.value } })
    e.preventDefault();
    runContractFunction({
      ethValue: formData.value
    })
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM