Если у меня есть мультиязычный сайт. Идентификатор локали сохраняется в URL при запуске, например ::100100
/:locale/my/awesome/route
Переключатель локали заменяет текущий :locale
на новый следующим образом:
// code above (somewhere inside react component)
replaceLocale = (newLocale: string) => {
var { pathname, search } = this.props.location
var newPathname: string = pathname.replace(/^\/[a-z]{2}/g, `/${newLocale}
this.props.history.replace(newPathname + search) // note that REPLACE is used
}
// ...code below
Когда я рендерим Prompt
(или использую его атрибут when
), он реагирует на каждый тик HistoryAPI
, независимо от того, что это - POP
, PUSH
или REPLACE
, и это как разработано. Но, очевидно, теперь, когда я пытаюсь переключить локаль на странице с активным Prompt
, это также вызывает подтверждение перехода страницы, несмотря на то, что шаблон URL остался прежним. И это нежелательно.
Есть ли возможность сделать выборочный переход перехода страницы, например, Я желаю только обработать POP
и PUSH
состояния HistoryAPI
и состояние REPLACE
, которое я хочу оставить необработанным.