Это потому, что вы вызываете метод внутри события onClick напрямую.Существует три подхода для привязки событий к параметрам:
Использование функции встроенной стрелки:
onClick={() => this.props.handleDelete(this.props.index)}
Использование метода открытого класса (как у вас также есть в настоящее время), но просто нужно выполнить карри:
handleDelete = index => () => {
console.log("inside handleDelete:");
};
Используя связанный метод:
handleDelete(index) {...}
Но для этого вам нужно связать this
внутри конструктора.
this.handleDelete = this.handleDelete.bind(this)
Если вам нужно передать событие:
(using inline arrow function)
onClick={(e) => this.props.handleDelete(this.props.index, e)}
(using public class method)
handleDelete = index => e => {
console.log(e);
};
Обратите внимание, что если вы используете встроенную функцию стрелки, вам не нужно карри функцию.Это будет просто отлично:
handleDelete = index => {...}
Или без использования открытого метода класса (т.е. связанного метода):
handleDelete(index) {...}