[英]How do I get the value of the pressed button on a Formik form?
在 React 應用程序中使用 Formik 時,具有多個按鈕的表單定義如下:
<button type="submit" name="action" value="unlock">Unlock account</button>
<button type="submit" name="action" value="delete">Delete account</button>
如何獲取按下按鈕的name
和/或value
?
我確實嘗試將字段action
添加到我的initialValues
,但它仍然是空白的。
我找到了一種解決方法,即以這種方式定義我的按鈕:
<button type="submit" onClick={() => setFieldValue("action", "unlock")}>unlock</button>
<button type="submit" onClick={() => setFieldValue("action", "delete")}>delete</button>
然后在 Formik 的onSubmit
回調中,我檢查並重置action
字段。
這是一種將onSubmit
包裝在表單中並使用event.submitter
屬性獲取對按下的按鈕的引用的方法,然后在最終處理表單之前將其設置到 Formik 中。
<Formik
initialValues={{}}
onSubmit={async values => {
console.log('onSubmit', values);
}}
>
{({ handleSubmit, setFieldValue }) => (
<form
onSubmit={jsEvent => {
// This is a bit of a hack to copy the name and value of
// the submitter into the Formik form
const { name, value } = jsEvent.nativeEvent.submitter;
setFieldValue(name, value);
return handleSubmit(jsEvent);
}}
>
...
</form>
)}
</Formik>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.