Так как у React нет встроенного способа управления document.title
, я использовал его внутри componentDidMount
для моих обработчиков маршрутов.
Однако теперь мне нужно изменить заголовок на основе state
асинхронно. Я начал размещать assingsments в componentDidUpdate
, но время от времени я забываю назначить document.title
на некоторые страницы, а предыдущий заголовок опускается до тех пор, пока я его не замету.
В идеале я хотел бы выразить декларативно document.title
, не назначая его. Какой-то "поддельный" компонент, вероятно, был бы наиболее удобным, учитывая, что я хочу иметь возможность указывать заголовок документа на нескольких уровнях вложенности:
- На верхнем уровне (название по умолчанию);
- На уровне страницы (для некоторых страниц, но не для всех);
- Иногда на внутреннем уровне компонента (например, пользователь вводит в поле).
Дополнительные требования:
- Заголовок, указанный в дочернем, должен переопределять заголовок, указанный родителем;
- Надежный (гарантирует очистку при изменении маршрута);
- Не следует удалять DOM (то есть без хаков с возвратом компонента
<noscript>
); - Я использую response-router, но лучше, если этот компонент работает и с другими маршрутизаторами.
Что я могу использовать?