javascript - 如何使用 formik react js 在 handlesubmit 函数中接收选择值?

标签 javascript html forms reactjs formik

我正在使用 formik 插件在 reactjs 中开发一个表单 plugin link .当我提交表单时,我得到的是文本字段值,但下拉值是空的...

这是我的下拉选择

<div className="form-group">                  
                <Field component="select" id="category" name="category" value={this.state.value} className={"form-control"} onChange={ this.handleChange }>
                   <option value="lokaler">Lokaler</option>
                   <option value="jobb">Jobb</option>
                   <option value="saker-ting">Saker & ting</option>
                   <option value="evenemang">Evenemang</option>
                </Field>
                  </div>

处理提交函数

export default withFormik({
  enableReinitialize: true,
  mapPropsToValues({ category }) {
    return {      
      category: category || ''
    }
  },
    handleSubmit(values, { setStatus, setErrors }){
      console.log("data is this: "); 
      console.log(values); //here i am getting all form fields values except select value returning empty value
      console.log("category: "+values.category);// here i always get empty value but not getting selected value

      }

我在句柄提交函数中获取所有文本字段值,但我无法获取下拉选择值....请告诉我如何在句柄提交函数中获取下拉选择值?

最佳答案

我昨天也遇到了这个问题。我的问题是提交包含 ant design 下拉列表的表单。经过几个小时后,我终于让它工作了:

文档说你需要分别设置onChange, onBlur 事件到setFieldValue, setFieldTouched props 就像3rd -方输入示例:

<MySelect
    value={values.topics}
    onChange={setFieldValue}
    onBlur={setFieldTouched}
    error={errors.topics}
    touched={touched.topics}
/>

所以对于我的问题,我需要稍微改变一下:

<Select
  {...field}
  onChange={(value) => setFieldValue('fruitName', value)}
  onBlur={()=> setFieldTouched('fruitName', true)}
  value={values.fruitName}
  ...
>
...
</Select>

希望这会有所帮助。

这是我的 CodeSandbox

关于javascript - 如何使用 formik react js 在 handlesubmit 函数中接收选择值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50343914/

相关文章:

javascript - 如何使用javascript验证输入类型= 'file'?

javascript - 我怎样才能使 knockout "value"绑定(bind)只写,这样它就不会尝试从中读取?

javascript - 在每行的第一个元素上设置边框

javascript - 如何将表单字段作为 ng-include 包含在表单中?

html - 如何在搜索引擎结果中隐藏图标字体?

javascript - 固定位置在 firefox 和 chrome、opera 中都不起作用,但仅在 safai、css 中起作用?

ruby-on-rails - 无法将图像解析为 URL : to_model delegated to attachment,,但 Rails 5.2 中附件为零

javascript - 如何从json字符串中获取值

css - 具有 1 个绝对宽度 float 和 1 个相对 float 的相对宽度容器

javascript - 当使用 jQuery 完成表单提交时,如何发送非空输入?