gpt4 book ai didi

reactjs - 如何使用另一个 react 选择的值在 react 选择中制作过滤器

转载 作者:行者123 更新时间:2023-12-04 12:42:30 27 4
gpt4 key购买 nike

我正在使用 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 是可过滤的,那么它可能没问题)。

一个更简单的解决方案是在您传递给第二个 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>
);
}
}

Working Example

关于reactjs - 如何使用另一个 react 选择的值在 react 选择中制作过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56669201/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com