#javascript #reactjs #i18next #react-i18next
Вопрос:
Я использую i18n для перевода страницы. На странице есть 3 языка, польский, немецкий и английский. Немецкий язык является языком по умолчанию. Это работает, но когда я меняю язык на немецкий, а затем перезагружаю страницу, местоположение меняется на Польшу. В общем, я знаю, почему это происходит. Немецкий язык является языком по умолчанию, поэтому, когда я изменяю язык на немецкий, в url ничего не добавляется. Затем после перезагрузки страницы, когда мой браузер локализован в Польше, язык на странице меняется на польский.
<div className="language">
<span>
<link href="{router.asPath}" locale="de"
<a onClick="{handleClick}"><img width="30px" className={locale == 'de' ? 'selected' : ''} src="/images/flags/flaga-niemiec.png"/></a>
/>
</span>
<span>
<link href="{router.asPath}" locale="pl"
<a onClick="{handleClick}"><img width="30px" className={locale== 'pl' ? 'selected' : ''} src="/images/flags/flaga_polski.png"/></a>
/>
</span>
<span>
<link href="{router.asPath}" locale="en"
<a onClick="{handleClick}"><img width="30px" className={locale == 'en' ? 'selected' : ''} src="/images/flags/gb.png"/></a>
/>
</span>
</div>
Что я должен изменить, чтобы исправить это?
Комментарии:
1. Не могли бы вы сначала исправить отступ?
Ответ №1:
используйте жирную стрелку при вызове функции. например, onClick = {() => handleClick()}. я получу привязку к событию. не будет вызываться при первом рендеринге html.
Комментарии:
1. использование имени функции без () допустимо и не вызовет функцию.