ReactRouter v4 выборочный переход страницы - PullRequest
0 голосов
/ 05 сентября 2018

Если у меня есть мультиязычный сайт. Идентификатор локали сохраняется в 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, которое я хочу оставить необработанным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...