React:如果`multiple`为false,则提供给<select>的`value` prop必须是标量值

时间:2017-12-08 20:05:58

标签: javascript reactjs react-redux-form

我收到这个警告: 警告:提供给&lt; select&gt;的`value`道具如果`multiple`为false,则必须是标量值。检查`Control`的render方法。 我正在使用React Redux表单https://davidkpiano.github.io/react-redux-form/docs/api/Control.html#prop-defaultValue。 数据作为一组对象显示在select选项元素内部。我不想将控件变成多个,因为我们只希望用户选择一个值。 我该如何解决此警告?

2 个答案:

答案 0 :(得分:4)

如果您在自己的状态下使用数组,则在不进行多次搜索的情况下会出现该错误

如果是简单搜索,请使用单引号

useState('')

const [categoria, setCategoria] = useState('')

<select
        onChange={e => setCategoria(e.target.value)}
        value={categoria}
       >
</select>

答案 1 :(得分:2)

如果您指定

multiple={false}

然后,您在select上提供的任何值都必须是单个值,例如“ apple”。

但是,如果您指定

multiple={true}

react需要一个数组:

value={['apple','orange']}

请参见the official documentation for React Forms中具有multi = {true}的select的示例。

请记住,react只会将multiple关键字添加到呈现的html(如果将其设置为true)。因此,您的控件可以将multiple属性设置为false,而不用多次选择创建渲染的元素。