javascript - 将react-select与formik一起使用时,无法读取未定义的属性 'type'

标签 javascript reactjs react-select react-component formik

我正在使用react-select和formik构建一个带有自动填充文本框的表单。

<Formik
    initialValues={{
        assignedTo: task.assignedTo,
    }}
    onSubmit={(values) => {
        const updatedTask = { ...task, ...values };
        editTask(updatedTask);
    }}
    render={({ handleSubmit, handleChange, values }) => (
        <form>
            <Select type="text" name="assignedTo" options={options} onChange={handleChange} value={{ value: task.assignedTo, label: task.assignedTo }} />
        </form>
    })
/>

它抛出一个错误无法读取未定义的属性“type” enter image description here

如何解决这个问题并在 formik 中处理 react 选择?

最佳答案

React-Select的onChange第一个参数是一个选项值,而formik的handleChange第一个参数是一个事件

React-Select: onChange(value, action) => void
Formik: handleChange(e: React.ChangeEvent<any>) => void

这就是您收到此类错误的原因。

这是我的方法。我希望这对您有帮助。

import React from 'react';
import { Formik, Form, Field } from 'formik';
import Select from 'react-select';

function SelectField(FieldProps) {
  return (
    <Select
      options={FieldProps.options}
      {...FieldProps.field}
      onChange={option => FieldProps.form.setFieldValue(FieldProps.field.name, option)}
    />
  )
}

export default function FormikReactSelect(props) {
  const options = [
    { value: '1', label: 'White' },
    { value: '2', label: 'Yellow' },
  ];
  return (
    <Formik>
      {formProps => (
        <Form>
          <Field name='SelectColor' options={options} component={SelectField}/>
        </Form>
      )}
    </Formik>
  );
}

关于javascript - 将react-select与formik一起使用时,无法读取未定义的属性 'type',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51518930/

相关文章:

javascript - 我如何知道 javascript 所有异步操作何时结束?

javascript - 使用 getElementsByName 将 TextBox 替换为 CHECKBOX

javascript - Raphael.js - if/else 语句在点击时不切换

javascript - 为什么我的字符串没有通过正则表达式?

reactjs - 设置 react 选择输入字段的字体系列

javascript - 带有 react.js 的编译文件太大

javascript - 如何通过本地存储在 React 中添加多个产品到购物车?

reactjs - React应用程序中的实时加载数据

reactjs - 在React-Select中获取选择的值

javascript - react 中的可搜索下拉菜单