使用第一條評論中提出的解決方案,這是我的代碼:
let ref1 = React.createRef();
let ref2 = React.createRef();
async function myHandleSubmit(data){
if(ref1.current.clicked === true){
console.log("Ref1");
}else if(ref2.current.clicked === true){
console.log("Ref2");
}
}
<Form key={1} onSubmit={handleSubmit(myHandleSubmit)}>
// More code...
<FormButtonTop ref={ref1} left id="submit1" type="submit" value="A generator" />
<FormButtonTop ref={ref2} right id="submit2" type="submit" value="B generator" />
// More code...
</Form>
但是我收到了這個錯誤:

uj5u.com熱心網友回復:
所以你有一個表單提交處理程式,你想根據單擊哪個提交按鈕執行不同的操作?對。
您可以按照以下步驟執行此操作
1.為兩個按鈕創建參考
2.在提交時檢查提交處理程式中單擊了哪個按鈕
例如考慮以下代碼
//infunctional component you can use useRef hook
let ref1=React.createRef();
let ref2=React.createRef();
將此參考分配給這樣的兩個按鈕
<FormButtonTop ref={ref1} left id="submit1" type="submit" value="A generator" />
<FormButtonTop ref={ref2} right id="submit2" type="submit" value="B generator" />
最后在您的提交處理程式中使用此參考來檢查單擊了哪個按鈕并呼叫適當的函式,如下所示
funciton handleSubmit(){
if(ref1.current.clicked===true){
//form is submited with submit1 click
//do your code
}elseif(ref2.current.clicked===true){
//form is submited with submit2 click
///do your code here for submit2 click
}else{
//form is submited by pressing enter key
// do your code to handle enter key press
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/455407.html
