У меня есть ModalComponent, который может содержать несколько или нет элементов ввода.Это также может быть просто строка.Также есть SubmitButton.Если есть входные элементы, я хочу установить автофокус на первый элемент.Если нет элементов ввода, я хочу установить autoFocus на SubmitButton. Допустим, у нас есть что-то вроде:
render(){
return (<div>
{this.props.someSubComponent}
<button autoFocus={trueIfsomeSubComponentHasNoAutoFocusSet}>Submit</button>
</div>)
}
Я попытался найти все реквизиты и потомки (рекурсивно) someSubComponent для поиска реквизита, называемогоautoFocus, который работает только тогда, когда someSubComponent не является функциональным компонентом.В противном случае я не смог бы зацикливаться на подпорках внутри компонента.
До сих пор я видел только два решения:
- Я везде устанавливал автофокус вручную, передавая его в качестве опоры
- (возможно). Я использую React.forwardRef, чтобы обернуть функциональные компоненты, и использую ссылки, чтобы определить опору автофокуса кнопки
Какие-нибудь другие (лучшие) предложения?:)