На данный момент я устанавливаю заголовок документа в моем функциональном компоненте следующим образом:
useEffect(() => { document.title = 'My title' }, []);
Я хочу, чтобы мой сайт поддерживал разные языки, поэтому я реализовал react-i18next
. У меня есть кнопки для изменения языка, вызывающего функцию ниже. Это немедленно изменяет строки на моей веб-странице.
const changeLanguage = (lng) => {
i18n.changeLanguage(lng);
}
Изменение кода, упомянутого ранее, на приведенный ниже работает (обратите внимание на функцию t('...')
), но только при загрузке страницы. Если я нажимаю кнопки выбора языка, заголовок страницы не обновляется.
useEffect(() => { document.title = t('My title') }, []);
Как я могу этого добиться?
Та же проблема существует со строками, переданными в другие компоненты. Например,
// inside parent
<ChildComponent title={t('My title')} />
// inside child
<h1>{props.title}</h1>