Если библиотека не предоставляет способ передачи реквизита в дочерние элементы своих компонентов, нет другого способа сделать это. Реактивные компоненты немного «непрозрачны» по дизайну, так что вы не можете путешествовать со своим внутренним состоянием и детьми. Поэтому в этом случае вы на самом деле do должны отредактировать код библиотеки, чтобы это учесть.
Однако это не такая пугающая вещь. Просто передайте обработчик событий в компонент библиотеки как опору, а затем в библиотеке найдите, где находится элемент <input>
, и передайте ему обработчик событий, как обычно. Мне пришлось редактировать многие библиотеки React аналогичными способами, и это вполне нормально.
Редактировать: На самом деле я должен добавить, что вы можете просто обойти React и добавить обработчик события непосредственно к элементу input
, используя простой JavaScript. Например, в функциях родительского компонента библиотеки componentDidMount
и componentWillUnmount
вы должны добавить и удалить обработчик событий, соответственно, с помощью addEventListener
или аналогичного. Однако обычно - плохая идея взломать обходные действия, чтобы использовать собственные функции Реагента, когда вы можете делать то же самое внутри React с немного большей работой. Также довольно сложно точно определить, к какому элементу input
вы хотите добавить слушателей.