@uroot

Как при событии передать в параметре какой стейт нужно менять?

Есть чекбоксы фильтров:
const buttons = this.buttons.map (({ name, title }) => {
      return (
        <label key={name}>
          {title}
          <input
            name={name}
            type="checkbox"
            onClick={ (event) => { this.props.filterItems(name, event)} }
          />
        </label>
      )


Есть стейт:
state = {
    new : false,
    action : false
  };


Я пытаюсь установить стейт так:
filterItems = (name, event) => {
    this.setState({
      [name]: !this.state.checked
    });
    // ...
  };


Но стейт меняется только 1 раз. Подскажите, что я делаю не так. Я хочу в функции передавать параметр, в this.setState его вытягивать и записывать одной строкой: поле_стейта_который_я_передал: !this.state.checked. Если этот подход не правильный - покажите как правильно.
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
0xD34F
@0xD34F Куратор тега React
onChange={this.props.filterItems}

filterItems = ({ target: { name, checked } }) => {
  this.setState({
    [name]: checked,
  });
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы