Forkmik handleChange 未更新 React.js 中的下拉值
Forkmik handleChange not updating dropdown value in React.js
我正在尝试使用 Form.Select 从语义 ui react 到 build 下拉菜单。我正在发送具有以下属性的对象数组来填充下拉选项:
DelivererForDropdown = {
key: deliverer.id,
value: deliverer.id,
text: deliverer.userName,
id: deliverer.id
};
我面临的问题是来自 Formik 的 handleChange 事件没有更新我的选择。我将此事件用于其他输入并且效果很好。
<Form.Select
type="text"
placeholder="Repartidor"
name="deliverer"
options={deliverersForDropdown}
search
onChange={handleChange}
error={errors.deliverer}
value={values.deliverer}
/>
您可以使用 Formik 函数 setFieldValue()
手动设置处理程序中的值 onChange()
:
<Formik
enableReinitialize={true}
initialValues={initialValues}
onSubmit={async (values, { resetForm }) => {
console.log(JSON.stringify(values, null, 2));
}}
>
{({ isSubmitting, values, setFieldValue, setTouched, errors }) => {
return (
<FormikForm>
<Form.Select
type="text"
placeholder="Repartidor"
name="deliverer"
options={deliverersForDropdown}
search={true}
onChange={(event, { value }) => {
setFieldValue("deliverer", value);
setTouched("deliverer", true);
}}
error={errors.deliverer}
value={values.deliverer}
/>
<button type="submit" disabled={isSubmitting}>
SUBMIT
</button>
</FormikForm>
);
}}
</Formik>
或者您可以使用自动绑定的第 3 方,例如 formik-semantic-ui
我正在尝试使用 Form.Select 从语义 ui react 到 build 下拉菜单。我正在发送具有以下属性的对象数组来填充下拉选项:
DelivererForDropdown = {
key: deliverer.id,
value: deliverer.id,
text: deliverer.userName,
id: deliverer.id
};
我面临的问题是来自 Formik 的 handleChange 事件没有更新我的选择。我将此事件用于其他输入并且效果很好。
<Form.Select
type="text"
placeholder="Repartidor"
name="deliverer"
options={deliverersForDropdown}
search
onChange={handleChange}
error={errors.deliverer}
value={values.deliverer}
/>
您可以使用 Formik 函数 setFieldValue()
手动设置处理程序中的值 onChange()
:
<Formik
enableReinitialize={true}
initialValues={initialValues}
onSubmit={async (values, { resetForm }) => {
console.log(JSON.stringify(values, null, 2));
}}
>
{({ isSubmitting, values, setFieldValue, setTouched, errors }) => {
return (
<FormikForm>
<Form.Select
type="text"
placeholder="Repartidor"
name="deliverer"
options={deliverersForDropdown}
search={true}
onChange={(event, { value }) => {
setFieldValue("deliverer", value);
setTouched("deliverer", true);
}}
error={errors.deliverer}
value={values.deliverer}
/>
<button type="submit" disabled={isSubmitting}>
SUBMIT
</button>
</FormikForm>
);
}}
</Formik>
或者您可以使用自动绑定的第 3 方,例如 formik-semantic-ui