小编Ann*_*iaL的帖子

React Router-如何动态替换字符串中的参数

我在URL中有一组动态参数,例如用户区域设置,如下所示:

/en/homepage

在我的路由器配置JSON文件中,我有类似以下内容:

/:locale/homepage

哪种方法可以直接在React Router中直接替换这些参数?

我想出了一个与标准或便携式解决方案相距甚远的解决方案:

const urlTemplate = '/:language/homepage';
const mappedUrl = pathToRegexp.compile(urlTemplate);
const url = mappedUrl({
  'language': this.props.match.params.language
})
this.props.history.push(url);
Run Code Online (Sandbox Code Playgroud)

我能够检索匹配参数,如果该部件是由withRouter(从阵营路由器HOC)包裹,并用pathToRegexp(pillarjs /路径对正则表达式)取代他们,但如果我需要使用<Link to={}>一个无状态的组件真是太讨厌了。

是否有标准解决方案可以做到这一点?

先感谢您 :)

javascript reactjs react-router react-router-v4

6
推荐指数
2
解决办法
2157
查看次数