在 React js 中使用 Reactstrap 动态 Select 来自多个 Select 下拉菜单的选项
Dynamically Select Options From Multiple Select Dropdown With Reactstrap In React js
我有以下功能:
loadTag(data, td) {
var tag = this.state.session.tag.map((el) =>
$.inArray( el.name, data ) ?
<option key={el.name} value={el.key} defaultValue>{el.name}</option> :
<option key={el.name} value={el.key}>{el.name}</option>);
ReactDOM.render(
<Input type="select" className="dropselect_tag" name="tag" multiple>
{tag}
</Input>,
td);
}
我希望能够在 select 下拉列表中提供的选项列表中动态 select 多个选项。对于我的 select 下拉菜单,我使用了 reactstrap
和 select2
插件,它确实进行了初始化,但没有任何 selected.
我也试过这个:
loadTag(data, td) {
var tag = this.state.session.tag.map((el) =>
<option key={el.name} value={el.key}>{el.name}</option>);
ReactDOM.render(
<Input type="select" className="dropselect_tag" defaultValue={data} name="tag" multiple>
{tag}
</Input>,
td);
}
但它没有产生任何结果。而且我非常确定我正在发送这样的数组 ["item"]
。我从我的数据库中解析我的数组并像这样测试:
data = JSON.parse(data.replace(/"/g,'"'));
console.log(typeof data);
console.log(data);
有什么办法可以把这些东西拉出来吗?
我的建议是使用react-select,它可以select 优雅地多重化。可以试试吗?
npm install react-select
import React, { Component } from 'react'
import Select from 'react-select'
const options = [
{ value: 'chocolate', label: 'Chocolate' },
{ value: 'strawberry', label: 'Strawberry' },
{ value: 'vanilla', label: 'Vanilla' }
]
const MyComponent = () => (
<Select options={options} />
)
我是这样解决的:
loadTag(data, td) {
data = JSON.parse(data.replace(/"/g,'"'));
var tag = this.state.session.tag.map((el) => <option key={el.index} value={el.index}>{el.index}</option>);
ReactDOM.render(
<Input type="select" multiple={true} defaultValue={data} className="dropselect_tag" name="tag">
{tag}
</Input>,
td);
}
我有以下功能:
loadTag(data, td) {
var tag = this.state.session.tag.map((el) =>
$.inArray( el.name, data ) ?
<option key={el.name} value={el.key} defaultValue>{el.name}</option> :
<option key={el.name} value={el.key}>{el.name}</option>);
ReactDOM.render(
<Input type="select" className="dropselect_tag" name="tag" multiple>
{tag}
</Input>,
td);
}
我希望能够在 select 下拉列表中提供的选项列表中动态 select 多个选项。对于我的 select 下拉菜单,我使用了 reactstrap
和 select2
插件,它确实进行了初始化,但没有任何 selected.
我也试过这个:
loadTag(data, td) {
var tag = this.state.session.tag.map((el) =>
<option key={el.name} value={el.key}>{el.name}</option>);
ReactDOM.render(
<Input type="select" className="dropselect_tag" defaultValue={data} name="tag" multiple>
{tag}
</Input>,
td);
}
但它没有产生任何结果。而且我非常确定我正在发送这样的数组 ["item"]
。我从我的数据库中解析我的数组并像这样测试:
data = JSON.parse(data.replace(/"/g,'"'));
console.log(typeof data);
console.log(data);
有什么办法可以把这些东西拉出来吗?
我的建议是使用react-select,它可以select 优雅地多重化。可以试试吗?
npm install react-select
import React, { Component } from 'react'
import Select from 'react-select'
const options = [
{ value: 'chocolate', label: 'Chocolate' },
{ value: 'strawberry', label: 'Strawberry' },
{ value: 'vanilla', label: 'Vanilla' }
]
const MyComponent = () => (
<Select options={options} />
)
我是这样解决的:
loadTag(data, td) {
data = JSON.parse(data.replace(/"/g,'"'));
var tag = this.state.session.tag.map((el) => <option key={el.index} value={el.index}>{el.index}</option>);
ReactDOM.render(
<Input type="select" multiple={true} defaultValue={data} className="dropselect_tag" name="tag">
{tag}
</Input>,
td);
}