Несколько OnClick в одном компоненте Reactjs - PullRequest
0 голосов
/ 01 октября 2018

Можно ли вызвать несколько handleClick или handleSelect?В моем компоненте мне нужно сделать это, и я не делаю этого сейчас, если мне нужно изменить только имя, например handleSelect_2 или что-то еще.Это мой код

handleClick() {
  let config = {
    headers: {
      Accept: "application/json",
      "Content-Type": "application/json",
      Authorization: `Bearer ${authentication.getToken()}`
    }
  };
  axios
    .post(
      `http://127.0.0.1:8000/api/sessions/${this.state.session_id}/students/${
        this.state.selectedStudent
      }`,
      {},
      config
    )
    .then(response => {
      this.props.history.push("/Sessions");
    })
    .catch(err => console.log(err));
}

handleSelect(event) {
  this.setState({ selectedStudent: event.target.value });
}

Мне просто нужно сделать тот же метод, но с другим методом сообщения.

Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

вы можете переименовать ваши обработчики onClick, как показано ниже, но с разными URL-адресами

handleStudentClick()
handleTeacherClick()
handleThemesClick()

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

для вашего выбора (раскрывающиеся списки) просто включите атрибут имени, который совпадает со значением свойства в состоянии

<select name="selectedStudent" onChange={this.handleSelect}></select>
<select name="selectedTeacher" onChange={this.handleSelect} ></select>
<select name="selectedTheme" onChange={this.handleSelect} ></select>

Затем вы можете изменить handleselect на

handleSelect(event) {
  let updateState = this.setState;
  updateState[event.target.name] = event.target.value
  this.setState(updateState );
}
0 голосов
/ 01 октября 2018

попробуйте код ниже.

class Test extends React.Component {
   onClick(event) {
      func1();
      func2();
   }
   render() {
      return (
         <a href="#" onClick={this.onClick}>Test Link</a>
      );
   }
}
...