我在組件“MyEditDataForm”中有一個redux-form,我正在傳遞一個處理提交的函式,如下所示:
const myHandleSubmit = ({ firstInputFieldName, secondInputFieldName }) => {
console.log(firstInputFieldName);
console.log(secondInputFieldName);
};
const EditDataPage = () => {
return (
<Container>
<Row>
<MyEditDataForm
onSubmit={myHandleSubmit}
/>
</Row>
</Container>
);
};
控制臺輸出:“john”、“doe”
到目前為止一切順利...現在我想向 myHandleSubmit 添加一個引數,我想將其傳遞給 myHandleSubmit。像這樣:
const myHandleSubmit = ({ firstInputFieldName, secondInputFieldName, anotherParameter }) => {
console.log(firstInputFieldName);
console.log(secondInputFieldName);
console.log(anotherParameter);
};
const EditDataPage = () => {
const aNewParameter = "some info";
return (
<Container>
<Row>
<MyEditDataForm
onSubmit={myHandleSubmit({ anotherParameter: aNewParameter })}
/>
</Row>
</Container>
);
};
單擊提交按鈕之前的輸出:未定義、未定義、“一些資訊”
單擊按鈕后:“錯誤:您必須將 handleSubmit() 傳遞給 onSubmit 函式或將 onSubmit 作為道具傳遞”
如何在不破壞表單提交功能的情況下將 NewParameter 傳遞給 myHandleSubmit?我試圖用 bind() 做到這一點:
<MyEditDataForm
onSubmit={myHandleSubmit.bind({ anotherParameter: aNewParameter })}
/>
輸出:“john”、“doe”、未定義
我究竟做錯了什么?
uj5u.com熱心網友回復:
可能你需要這個:
const myHandleSubmit = ({ firstInputFieldName, secondInputFieldName, anotherParameter }) => {
console.log(firstInputFieldName);
console.log(secondInputFieldName);
console.log(anotherParameter);
};
const EditDataPage = () => {
const aNewParameter = "some info";
return (
<Container>
<Row>
<MyEditDataForm
onSubmit={(fields) => myHandleSubmit({ ...fields, anotherParameter: aNewParameter })}
/>
</Row>
</Container>
);
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/322059.html
標籤:javascript 反应 反应还原 还原形式
上一篇:無法將cypressvisit命令與createreactapp一起使用
下一篇:反應鏈接路由不重定向到url
