Как отправить два параметра, используя один флажок на событие щелчка? - PullRequest
0 голосов
/ 11 июня 2019

Что я хочу сделать, так это то, что когда пользователь нажимает на флажок, соответствующий companyid должен быть передан в функцию, где я могу обновить его статус активации.Но я не могу отправить 2 значения одним способом.

Я искал на разных сайтах и ​​все еще не могу получить никаких результатов.

Вот как я печатаю компании:

{this.state.allCompanies.map(com => (
                <tr>
                 <td>{com.cname} </td>
                  <td>
                    <a>
                        <input
                          type="checkbox"
                          name="active"
                          checked={com.is_active == 1 ? "true" : ""}
                          onClick={this.handleActivated(this, com.cid)}
                        />
                    </a>
                  </td>
                </tr>

Это моя handleActivated функция:

handleActivated(e, id) {
    const active = e.target.name;
    console.log(e.target.value);
    console.log(e.target.checked);

    this.setState({
      active: e.target.checked
    });

    // this.setState({  });
  }

Это мое состояние.

this.state = {
      allCompanies: [],
      data: false,
      company: "",
      active: ""
    };
    this.handleActivated = this.handleActivated.bind(this);

Что я хочу, это companyid в handleActivatedспособ.

Ответы [ 2 ]

2 голосов
/ 11 июня 2019

Надеюсь, это поможет вам.

onClick={(e) => this.handleActivated(e, com.cid)}
0 голосов
/ 11 июня 2019

Измените клик на это

onClick={event=>this.handleActivated(event,com.cid)}

Измените свою функцию на функцию стрелки

handleActivated =(e, id)=> {
    const active = e.target.name;
    console.log(e.target.value);
    console.log(e.target.checked);

    this.setState({
      active: e.target.checked
    });

    // this.setState({  });
  }

Как только вы это сделаете, вы можете удалить это из конструктора, потому что он больше ненеобходимо.

this.handleActivated = this.handleActivated.bind(this);

Это даст вам более чистый код

...