Это вопрос времени.
Когда вы используете bind
, аргументы отображаются на функцию, которую вы связываете, в том порядке, в котором вы их связываете , за которым следует любым переданнымк новой функции.
Когда вы используете функцию со стрелкой, вы явно передаете их в указанном порядке.
Ваша функция ожидает, что event
будет first аргумент, поэтому, когда вы используете стрелку, которую вы используете, вы передаете event, person.id
.Однако, когда вы связываете, вы передаете person.id
(первый аргумент), а когда функция вызывается с event
, вы передаете это (как второй аргумент).
Это означает, что ваши аргументы в конечном итоге окажутся неправильнымиоколо.
Так как у вас только есть person.id
, когда вы звоните bind
, и вы не получите event
до позднего времени, единственный способ использовать для этого bind
изменить исходную функцию , чтобы она принимала аргументы в другом порядке.
nameChangeHandler = (personId, event) => {