Я понимаю, что это старый вопрос, но если кто-то все еще ищет его, вы можете сделать это легко с помощью Resharper 8+. Фрагменты ctorf
, ctorp
и ctorfp
генерируют конструкторы, которые заполняют все поля, свойства или поля и свойства класса.
существует несколько способов передать параметр в обработчиках событий, некоторые следуют.
можно использовать функцию стрелки для переноса параметров передачи и обработчика событий:
<button onClick={() => this.handleClick(id)} />
выше примера эквивалентно вызову .bind
, или можно явно звонить, связывают.
<button onClick={this.handleClick.bind(this, id)} />
Кроме этих двух подходов, можно также передать аргументы функции, которая определяется как функция карри.
handleClick = (id) => () => {
console.log("Hello, your ticket number is", id)
};
<button onClick={this.handleClick(id)} />
Появление откуда ни возьмись к этому вопросу, но я думаю .bind
, добьется цели. См. ниже пример кода.
const handleClick = (data) => {
console.log(data)
}
<button onClick={handleClick.bind(null, { title: 'mytitle', id: '12345' })}>Login</button>
Было много соображений производительности, всех в вакууме.
проблема с этим обработчики - то, что необходимо приправить их карри для слияния аргумента, что Вы не можете назвать в опорах.
Это означает, что компоненту нужен обработчик для каждого активируемого по щелчку элемента. Давайте согласимся, что для нескольких кнопок это не проблема, правильно?
проблема возникает при обработке табличных данных с десятками столбцов и тысячами строк. Там Вы замечаете влияние создания что много обработчиков.
факт, мне только нужен тот.
я установил обработчик на уровне таблицы (или УЛ. или OL...), и когда щелчок происходит, я могу сказать, который был нажатой ячейкой с помощью доступных данных с тех пор когда-либо в конечном счете объект:
nativeEvent.target.tagName
nativeEvent.target.parentElement.tagName
nativeEvent.target.parentElement.rowIndex
nativeEvent.target.cellIndex
nativeEvent.target.textContent
я использую tagname поля, чтобы проверить, что щелчок произошел в допустимом элементе, например, проигнорируйте щелчки в ТЫС ot нижние колонтитулы.
rowIndex и cellIndex дают точное местоположение нажатой ячейки.
Textcontent является текстом нажатой ячейки.
Этот способ, которым я не должен передавать данные ячейки обработчику, они могут самообслуживание это.
, Если мне было нужно больше данных, данные, которые не должны быть отображены, я могу использовать атрибут набора данных или скрытые элементы.
С некоторой простой навигацией DOM это - все под рукой.
Это использовалось в HTML с тех пор когда-либо, так как ПК были намного легче тонуть в трясине.