反应:如果 `multiple` 为 false,则提供给 <select> 的 `value` 道具必须是一个标量值

Kev*_*vin 12 javascript reactjs react-redux-form

我收到此警告:

Warning: The `value` prop supplied to <select> must be a scalar value if `multiple` is false. Check the render method of `Control`.

我正在使用 React Redux 表单https://davidkpiano.github.io/react-redux-form/docs/api/Control.html#prop-defaultValue

数据以对象数组的形式出现,以显示在选择选项元素内。我不想将控件变成倍数,因为我们只希望用户选择一个值。

我将如何解决此警告?

小智 12

如果您在您所在的州使用数组,并且不进行多次搜索,则会出现该错误

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

使用状态('')

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

<select
        onChange={e => setCategoria(e.target.value)}
        value={categoria}
       >
</select>
Run Code Online (Sandbox Code Playgroud)


J E*_* II 7

如果您指定

multiple={false}
Run Code Online (Sandbox Code Playgroud)

那么无论你提供什么select作为值都必须是一个单一的值,比如“苹果”。

但是,如果您指定

multiple={true}
Run Code Online (Sandbox Code Playgroud)

react 需要一个数组:

value={['apple','orange']}
Run Code Online (Sandbox Code Playgroud)

请参阅React Forms 官方文档中带有 multiple={true} 的选择示例。

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