如何在反应选择上进行for循环?

2024-04-02

我使用react-select创建一个选择选项安装与使用 https://github.com/JedWatson/react-select示例代码。

有一个数组对象来存储如下选项:

const options = [
  { value: 'chocolate', label: 'Chocolate' },
  { value: 'strawberry', label: 'Strawberry' },
  { value: 'vanilla', label: 'Vanilla' }
];

现在,我想让它动态地存储其他数据的值并使其迭代对象。

像这样:

const options = [
      { value: flavor, label: flavor },
    ];

The 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 },
    ];

这样做的目的是为了使选择上的下拉选项具有动态值。


您可以使用.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'));

工作示例在这里https://stackblitz.com/edit/react-select-example https://stackblitz.com/edit/react-select-example

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在反应选择上进行for循环? 的相关文章

随机推荐