Согласно документам в response-select (https://github.com/JedWatson/react-select), есть свойство, которое принимает функцию с двумя параметрами (значение, событие). Мне нужно было получить событие. Я здесь что-то не так делаю?
Прохождение события в response-select
Ответы (2)
нужно состояние эквалайзера
class App extends Component {
state = {
firstValue: "",
secondValue: ""
};
handleChange = (value, state) => {
this.setState({ [state]: value });
};
render() {
return (
<Select
name="form-field-name"
value={this.state.value}
onChange={(value) => this.handleChange(value, "firstValue")}
options={[
{ value: "one", label: "One" },
{ value: "two", label: "Two" }
]}
/>
<Select
name="form-field-name"
value={this.state.value}
onChange={(value) => this.handleChange(value, "secondValue")}
options={[
{ value: "one", label: "One" },
{ value: "two", label: "Two" }
]}
/>
);
}
}
person
yurii kosygin
schedule
15.05.2018
- для этого мое имя состояния должно иметь значение - когда у меня есть два компонента Select, что мне делать? Это не служит никакой цели.
- person Azad Rahman; 15.05.2018
state = {firstChild: '', secondChild: ''} и onChange = {(value) = ›handleChange (value, 'secondChild')}, например, и handleChange = (values, state) =› this.setState ({ [состояние]: значение})
- person yurii kosygin; 16.05.2018
Спасибо за помощь. Это сработало с небольшой настройкой. Вот рабочая демонстрация, если вам интересно: codeandbox.io/s/9q24z49zvr
- person Azad Rahman; 17.05.2018
В версии 2.0.11 и выше, чтобы обновить свое состояние для каждого Select с той же функцией, вы можете сделать это следующим образом:
class MyComponent extends Component{
state={
firstSelect: null,
secondSelect: null
}
handleSelectChange = (selectedOption, { name }) => {
this.setState({ [name]: selectedOption.value });
}
render() {
return (
<>
<Select name="firstSelect" onChange={this.handleSelectChange} {...}/>
<Select name="secondSelect" onChange={this.handleSelectChange} {...}/>
</>
)
}
}
person
Niraj
schedule
11.08.2020
handleChange(event) { this.setState({[event.target.name]: event.target.value}) }
- person Azad Rahman   schedule 15.05.2018