Краткий ответ: С этим подходом в вашем сценарии все в порядке. Просто зайдите снова, когда ваш сценарий изменится.
Объяснение
Это не анти-паттерн в вашем сценарии. Это будет считаться анти-паттерном, если вы управляете поведением дочернего компонента через ref.
React предлагает избегать таких анти-шаблонов, как общие рекомендации, чтобы избежать крайних случаев, когда ваш компонент становится нестабильным, так как он контролируется другим источником правды. Но в сценарии, подобном вашему, где вы уверены, почему используете его, это нормально.
Например, React советует не заполнять штат из реквизита. Это верно, потому что тогда у вас есть два источника правды, и вам нужно синхронизировать их, иначе ваш компонент не будет работать должным образом. Но, если вы уверены, что ваши реквизиты (в частности, данные) не будут меняться, это больше не анти-паттерн, потому что вы теперь заполняете состояние из реквизитов, но затем продолжаете управлять только на уровне состояний.