当前位置: 首页 > 面试题库 >

如何在反应选择中使用另一个反应选择的值制作过滤器

尹晟
2023-03-14
问题内容

我正在使用创建一个解决方案react-select,而选择应该只包含另一个中不包含的选项。防爆

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

const list = [
  { label: 'foo', value: 1 },
  { label: 'bar', value: 2 },
  { label: 'bin', value: 3 },
]

export default Test extends React.Component {
  render = () => (
    <>
      <Select ref="a" options={list} />
      <Select ref="b" options={list} filterOption={o => /* devo omitir "a" */} />
    </>
  )
}

<Select ref="b" />通过另一个值进行过滤,我该<Select ref="a" />怎么办?


问题答案:

劳拉(Laura)的上述答案在编写自定义filterOption函数时中断了过滤(如果您不希望Select可过滤,那么可能就可以了)。

一个更简单的解决方案是,对options通过的应用仅应用一个简单的过滤器,而不是对第二个“选择”应用。

const options = [
  { label: "foo", value: 1 },
  { label: "bar", value: 2 },
  { label: "bin", value: 3 }
];

class App extends Component {
  constructor(props) {
    super(props);
    this.state = {
      value1: false,
      value2: false
    };
  }

  onChange = option => {
    if (this.state.value2.value === option.value) {
      this.setState({
        value1: option,
        value2: false
      });
    } else {
      this.setState({ value1: option });
    }
  };

  onChange2 = option => {
    this.setState({ value2: option });
  };
  render() {
    return (
      <div className="App">
        <Select
          onChange={this.onChange}
          options={options}
          value={this.state.value1}
        />
        <Select
          onChange={this.onChange2}
          options={options.filter(
            option => option.value !== this.state.value1.value
          )}
          value={this.state.value2}
        />
      </div>
    );
  }
}

工作实例



 类似资料:
  • 我想在react中处理选择的事件,示例如何在普通JS中工作。 因此我为选择创建了react组件:

  • 问题内容: 当我想更改所选选项时,我的反应有问题。问题在于该值是一个对象,我无法在选项值属性中传递它。 请参见以下代码: 与 我需要使用所选选项的值更改组件的状态。状态改变时我得到什么。我想发生这种情况是因为react无法将javascript对象嵌入最终视图的属性中。我是正确的? 而且,我在构造函数中将state 设置为null是否有正确的方法? 问题答案: 您可以利用的 此外,我在构造函数中将

  • 问题内容: 如果我想替换选项 在给定的示例中,通过在react jsx文件中使用数组,我将如何进行? 最好的祝福 蓝色 问题答案: 因为它只是JavaScript,所以有上百万种方法。我通常采用的方式是映射容器以生成胆量。for循环或其他方法也可以正常工作。 或者在es6中以更现代的方式反应,您可以

  • 问题内容: 在MSSQL服务器上,给出以下表: 我可以发出类似的查询: 并得到类似: 如果我想要这样的数据,查询数据库的最有效方法是什么? 数据库结构要复杂得多,不幸的是我无法更改它。 编辑 :解决方案不应在查询中使用和作为硬编码值。 问题答案: 对于SQL Server 2005+,可以使用动态SQL和。

  • 我觉得我已经读了很多例子/文档,看了很多视频,但是我不能用带反冲的选择器。也许我只是今天过得不好,因为我觉得没那么难。 这就是我所处的位置。。。 假设我有这样的数据: 在我的索引中,我有: DataComponent类似于: 我希望这样,如果用户选择它只显示带有cat的数据,但如果未选择任何内容,也会显示所有数据。。。

  • 我有这个密码 此代码显示所有类别。我有 如何使ifadd attribute selected to select(在映射函数中)