我當前的功能組件要求我在運行嵌套的 if 語句之前按兩次按鈕。根據(jù)我目前的理解,任何狀態(tài)變化都會重新渲染整個組件,所以我相信這就是阻止 if 語句立即運行的原因。如果這是問題,我仍然不確定如何解決它。const [ inputData, setInputData ] = useState("Botany") // Example of stateconst [ lockInputData, setLockInputData ] = useState("")const [ prevLockInputData, setPrevLockInputData ] = useState("")// Button element propinputDataSubmit={ () => submitData(inputData) } // On button press this will be called.const submitData = async (inputData) => {setLockInputData(inputData); if (lockInputData !== "" && lockInputData !== prevLockInputData) { await newCat(inputData.replace(/[" "]/g, "_")); setPrevLockInputData(lockInputData); } else if (lockInputData !== "" && lockInputData === prevLockInputData) { await newSubCat(inputData.replace(/[" "]/g, "_")); }}使用 inputDataSubmit 的組件位:<form onSubmit={ () => false}> <input action="" type="text" placeholder="Category" value={props.inputData} onChange={props.handleChange} /> <button type="button" onClick={props.inputDataSubmit} > Random </button></form>隨時提供有關編碼最佳實踐的建議。
需要兩次按下的反應按鈕
慕絲7291255
2022-11-03 10:10:40