javascript - 使用多下拉菜单时获取 react 选择选项

标签 javascript reactjs react-select

我有两个工作 react-select我页面上的下拉菜单,一个允许用户选择 A 或 B,另一个允许他们从“蓝色、黄色、红色”中选择多个项目。

当他们选择了这些项目时,我想使用它们。现在我只想检查已选择的值,所以我只是将它们打印到屏幕上。对于单个选择下拉列表,我已经成功地使用了 github 中的示例代码。这是如下:

import React from 'react';
import Select from 'react-select';

const options = [
  { value: 'a', label: 'a' },
  { value: 'b', label: 'b' },
];

class App extends React.Component {
  state = {
    selectedOption: null,
  }
  handleChange = (selectedOption) => {
    this.setState({ selectedOption });
    document.write(`Option selected:`, selectedOption.value); //this prints the selected option
  }
  render() {
    const { selectedOption } = this.state;

    return (
      <Select
        value={selectedOption}
        onChange={this.handleChange}
        options={options}
        //isMulti //added when the user can pick more than one
      />
    );
  }
}

我的问题是如何成功地为多选项执行此操作?用户可以根据需要选择任意多的选项,但在打印已选择的选项时会抛出“未定义”错误。我认为这是因为该选项存储在一个数组中,但我不确定。

谢谢大家。

最佳答案

您需要更改handleChange 来处理isMulti。这是一个例子:

import React, { Component } from 'react';
import { render } from 'react-dom';
import Select from 'react-select';

const options = [
  { value: 'a', label: 'a' },
  { value: 'b', label: 'b' },
];

class App extends React.Component {
  state = {
    selectedOptions: [],
  }

  handleChange = (selectedOptions) => {
    this.setState({ selectedOptions });
  }

  render() {
    const { selectedOptions } = this.state;

    return (
      <React.Fragment>
        <Select
          isMulti
          value={selectedOption}
          onChange={this.handleChange}
          options={options}
        />
      {selectedOptions.map(o => <p>{o.value}</p>)}
      </React.Fragment>
    );
  }
}

render(<App />, document.getElementById('root'));

这是一个工作示例:https://stackblitz.com/edit/react-czf4ib

关于javascript - 使用多下拉菜单时获取 react 选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53191753/

相关文章:

reactjs - 以编程方式聚焦并选择 react 选择中的值

javascript - 可调整大小的侧边栏 - 拖动即可调整大小

javascript - 获取 JavaScript 表单总量

javascript - 从reactJS中的json响应创建动态表

javascript - 如何将 javascript 外部文件(如 bootstrap 、 jQuery)添加到reactjs应用程序中

javascript - 如何将另一个组件的值填充到 redux 表单中?

javascript - 如何在 react-select 中将 props 传递给自定义组件

reactjs - 改变 api 数据时 react 选择更新值

javascript - 有没有办法通过函数将字符串值从 View 传递到 js 文件

php - url 编码的奇怪问题