我正在使用Formik提交我的表格。我正在嘗試向我的 onSubmit 函式添加自定義引數,以便我可以獲取values表單和該自定義引數。
const handleSubmit = async (customParam) => {
console.log(customParam);
console.log('Values : ');
console.log(values);
}
<AppForm initialValues={{ rejectionComment: "" }} onSubmit={handleSubmit(myCustomParam)}> //My FORMIK form
<AppFormField multiline={true} numberOfLines={4} name="rejectionComment" secured={false} autoCapitalize="none" autoCorrect={false}/>
<SubmitButton title="Valider" /> //Validation button
</AppForm>
使用此代碼,我可以記錄myCustomParam但無法獲取表單的值[Unhandled promise rejection: ReferenceError: values is not defined]
如果我更改onSubmit為onSubmit={handleSubmit}和handleSubmit,const handleSubmit = async (values) => {console.log(values);}我可以記錄我的值,但不能添加我的自定義引數。
你能提供一些幫助嗎?
uj5u.com熱心網友回復:
您可以通過兩個更改來做到這一點。
- 更改您的
handleSubmit函式以接受兩個引數(它也不需要是異步的,除非您做的事情比這里顯示的要多)。
const handleSubmit = (values, customParam) => {
console.log({ values, customParam });
};
- 通過
valuesFormik 提供它們的地方。
<AppForm
onSubmit={values => { handleSubmit(values, myCustomParam); })}
...
>
解釋:
當您將代碼更改為 時onSubmit={handleSubmit),Formik 組件會使用表單值呼叫它。這個的長形式是onSubmit={values => handleSubmit(values)}. 由于您的自定義引數是在 Formik 之外定義的,您需要手動將其傳遞給函式。
uj5u.com熱心網友回復:
安倍指出了顯而易見的問題。通過使用回呼,我已經能夠定義值和自定義引數:
onSubmit={(values) => handleSubmit(values, "test")}
const handleSubmit = async (values, customParam) => {
console.log(values);
console.log(customParam);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/398861.html
標籤:javascript 反应原生 世博会 福米克
上一篇:CreateSlice的extraReducer操作不更新狀態
下一篇:計算遞回反應組件中兒童的數量
