this
определено в методе render
, но не в eventHandler, который вызывает функцию стрелки.
Я выполнил новую проверку на чистоту npx create-react-app projectName
и воспроизвожу неожиданную проблему I 'Я сталкиваюсь в личном проекте.
import React from 'react';
class RemoteSubmitButton extends React.Component {
onSignUpClick = () => {
debugger; // "this" is undefined
};
render() {
debugger; // "this" is defined
return (
<button
type="button"
onClick={this.onSignUpClick}
>
Submit
</button>
);
}
}
export default RemoteSubmitButton;
Всякий раз, когда я ссылаюсь на this
внутри функции стрелки, я ожидаю, что контекст вызывающего метода (метод render
) будет перенесен.Поместив несколько отладчиков, я вижу, что this
определен в методе рендеринга, но не в методе onSignUpClick
.