我遵循此Installation and usage示例代码,使用react-select进行选择。 有一个数组对象存储这样的选项:
const options = [
{ value: 'chocolate', label: 'Chocolate' },
{ value: 'strawberry', label: 'Strawberry' },
{ value: 'vanilla', label: 'Vanilla' }
];
现在,我想使其动态地存储其他数据中的值,并使其在对象上进行迭代。
像这样:
const options = [
{ value: flavor, label: flavor },
];
值和标签上的风味是一个数组。 假设数组是这样存储数据的:
flavor = ['chocolate', 'strawberry', 'vanilla']
因此,每当数组添加新值时,上方数组的对象也会在迭代对象上添加值。
那么,如何在其中进行迭代呢??
还是我想在组件中弄清楚??
<Select
value={selectedOption}
onChange={this.handleChange}
options={options}
/>
EDIT :我想要的结果是根据数组值添加数组中的对象,假设如果数组中有一个数据,则const options
存储数据像这样:
const options = [
{ value: flavor, label: flavor },
];
然后,如果数组存储2个数据,则const options
如下所示:
const options = [
{ value: flavor, label: flavor },
{ value: flavor, label: flavor },
];
这样做的目的是使选择的make下拉选项具有动态值。
答案 0 :(得分:1)
我已经在this answer之后找到了答案,这是我根据自己的问题想要得到的答案:
const options = [];
obj = {}
for(var i = 0; i < flavor.length; i++) {
var obj = {};
obj['value'] = flavor[i];
obj['label'] = flavor[i];
options.push(obj);
}
答案 1 :(得分:0)
您可以使用.map
函数动态创建您的选项:)
import React, { Component } from 'react';
import { render } from 'react-dom';
import Hello from './Hello';
import './style.css';
const options = [
{ value: 'flavor', label: 'flavor' },
{ value: 'yummy', label: 'yummy' },
{ value: 'red', label: 'red' },
{ value: 'green', label: 'green' },
{ value: 'yellow', label: 'yellow' },
];
class App extends Component {
state = {
selectedOption: 'None',
}
handleChange = ({ target }) => {
this.setState({
selectedOption: target.value,
});
}
render = () => (
<div>
<span>{this.state.selectedOption}</span>
<select
value={this.state.selectedOption}
onChange={this.handleChange}
>
{options.map(({ value, label }, index) => <option value={value} >{label}</option>)}
</select>
</div>
);
}
render(<App />, document.getElementById('root'));