В React, чтобы связать значения с методами обработчика событий и обеспечить доступ к объекту `this` внутри этих методов, можно использовать функцию `bind()`.
Функция `bind()` используется для создания новой функции, которая имеет тот же код, что и исходная функция, но привязывает указанный контекст к значению `this`.
Цель записи `this.onChange = this.onChange.bind(this)` состоит в том, чтобы внутри метода `onChange()` иметь доступ к контексту объекта. Без привязки контекста `this` внутри `onChange()` указывает на неопределенное значение, из-за чего могут возникнуть ошибки. Привязка контекста с помощью `bind()` гарантирует, что `this` будет указывать на нужный объект, в котором находится метод.
Использование только `this.onChange.bind(this)` не является недостаточным в смысле привязки контекста, но это возвращает новую функцию, связанную с определенным контекстом. Если не сохранить эту привязанную функцию в определенном свойстве объекта, то доступ к ней может быть потерян, и она не сможет быть вызвана в другом месте кода. Поэтому запись `this.onChange = this.onChange.bind(this)` сохраняет привязанную функцию в свойстве объекта, чтобы она могла быть далее использована в компоненте.