【问题标题】:React-Select in redux formRedux 形式的 React-Select
【发布时间】:2017-03-01 14:41:02
【问题描述】:

我是 react-redux 的新手,我想用 react-select 创建一个下拉菜单。我这样创建了我的 DropDown 组件:

import React, { PropTypes } from 'react';
import Select from 'react-select';
import 'react-select/dist/react-select.css';

const options = [
    { value: 'one', label: 'One' },
    { value: 'two', label: 'Two' }
];

const MyDropdown = ({ input }) => (
  <div>
    <Select
      {...input}
      value="one"
      options={options}
      multi={true}
      onBlur={() => {
        input.onBlur([...input.value]);
      }
    }
    />
  </div>
);

MyDropdown.propTypes = {
  input: PropTypes.string.isRequired
};

export default MyDropdown;

我在这里渲染

<Field
            id="status"
            name="status"
            component={MyDropdown}
          />

我遇到了一个恼人的错误:“元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件),但得到:未定义”。怎么回事?

【问题讨论】:

  • “场”从何而来?那是 Bootstrap 的东西吗?
  • 字段正在从 redux-form 导入
  • 我们输入正确的知道 value={input.value}
  • 你能添加错误的完整堆栈跟踪吗?你如何导入MyDropdown?由于MyDropdown 未定义,因此问题可能出在导入上。

标签: reactjs redux-form react-select


【解决方案1】:

在您的表单字段中:

const options = [
    { value: 'one', label: 'One' },
    { value: 'two', label: 'Two' }
];

<Field
            id="status"
            name="status"
            component={MyDropdown}
            options={options}
            clearable={false}
          />

您的组件应如下所示:

import React, { PropTypes } from 'react';
import Select from 'react-select';

const MyDropdown = ({ input, ...props }) => {
 const handleBlur = () => input.onBlur
 return (
   <div>
        <Select
          instanceId={input.name}
          {...input}
          {...props}
          onBlur={handleBlur}
        />
   </div>
 )
}

如果这不起作用,请检查传递给它的选项并在您的 MyDropdown 组件中创建一个自定义方法,以从您传递的列表中生成选项并将其作为道具传递给&lt;select/&gt;。不过应该可以。

【讨论】:

  • 您如何将值从字段向下传递到选择?这是我目前遇到的问题:O?
  • @Jamie Hutber options in the Field 是传递给 MyDropdown 组件中 Select 的键值对列表。
  • 啊,所以你会把值放在options.... 非常好,谢谢我的朋友!!
猜你喜欢
  • 2018-09-19
  • 1970-01-01
  • 1970-01-01
  • 2019-09-23
  • 1970-01-01
  • 2019-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多