ReactRouter v4选择性页面转换挂钩

时间:2018-09-05 08:15:42

标签: reactjs typescript react-router-v4 html5-history

假设我有多语言网站。区域设置的ID在开始时存储在URL中,例如:

prime := <-ch

语言环境开关正在以这种方式将当前/:locale/my/awesome/route 替换为new:

: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,{ {1}}或POP,并且它是按设计要求的。但是,显然,现在,当我尝试在活动PUSH上切换页面上的区域设置时,尽管URL模板保持不变,它也会触发页面转换确认。这是不需要的。

是否有可能使页面转换挂钩具有选择性,例如我希望只处理REPLACE的{​​{1}}和Prompt状态,而我希望不处理的POP状态。

0 个答案:

没有答案