首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Formik Chakra-ui选择不使用值

Formik Chakra-ui选择不使用值
EN

Stack Overflow用户
提问于 2021-02-26 02:50:45
回答 1查看 1.8K关注 0票数 2

我正在尝试提交一个带有下拉列表的表单。问题是formik无法识别选项中的值,不确定为什么或如何修复它。

代码语言:javascript
复制
const [value, setValue] = React.useState("");
const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {
  setValue(event.target.value);
};
代码语言:javascript
复制
<Formik
    initialValues={{ ingredientId:"", }}
    onSubmit={async (values, { setErrors }) => {
        console.log(values);
    }}
>
    {({ isSubmitting }) => (
        <FormControl name="ingredientId" id="ingredientId">
            <FormLabel>Ingredient</FormLabel>
            <Select 
               name="ingredientId" 
               id="ingredientId" 
               onChange={handleChange} 
               value={value}
             >
                {ingredients!.map((ingredient: any) => {
                    return <option value={ingredient.id} id="ingredientId"> 
                        {ingredient.name}
                    </option>;
                })}
            </Select>
        </FormControl>
        ...
    )}
</Formik>

虽然ingredientId在提交后仍然是空的,但你知道吗?

EN

回答 1

Stack Overflow用户

发布于 2021-09-17 17:48:02

这很有趣,但即使在20+多年之后,当我在赶时间的时候,这个仍然会让我犯错。简单地说,所选的选项不会存储为select元素的value

要获得选定的值,您需要执行以下操作:

代码语言:javascript
复制
const { target } = event;

// note: 'select-multiple' for multi select
if (target.type === 'select-one') {
   const selectValue = target.selectedOptions[0].value;
}

https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/selectedOptions

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66374690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档