Как правильно описать контролируемый компонент (Controlled Components)?
В документации написано.
помимо event
мне нужно передать еще параметры
onClick={this.handleClickAnswerCheck.bind(this, param1, param2)}>
handleClickAnswerCheck = (param1, param2) => {
...
//как запустить здесь
//event.preventDefault(); или event.target...
//?
Так уже всё передаётся. То, что функция создана методом bind, вовсе не означает, что она не может принимать иных значений, помимо привязанных. Чтобы получить доступ к объекту события, надо его в списке параметров указать - после тех, чьи значения вы привязываете:
<button onClick={this.onClick.bind(this, param1, param2)}>click me</button>
onClick(param1, param2, e) {
e.preventDefault();
console.log(e.target);
}
Можно сделать чуть покороче, и принимать объект события не последним, а каким угодно:
<button onClick={e => this.onClick(e, param1, param2)}>click me</button>
onClick(e, param1, param2) {
...
}
Ещё вариант - если привязываемые значения являются примитивными, то можно засунуть их в data-атрибуты - будут доступны через
event.target.dataset
:
<button onClick={this.onClick} data-param1={param1} data-param2={param2}>click me</button>
onClick = e => {
const { param1, param2 } = e.target.dataset;
...
}