在React Router 4中,我可以定义
<Route path="/calendar/:view/:year?/:month?/:day?" component={Calendar} />
将道具从URL传递到我的日历组件。
在Calendar组件内部,我想以编程方式设置URL参数。文档显示了如何使用来执行此操作history.push()
,但这需要您自己设置URL的格式history.push(``${view}/${year}/${month}/${day}``)
。但我想在不耦合到路由结构的情况下更新URL,理想情况下是这样的history.push({ view: 'month', year: '2018' })
。
这可能吗?对我来说,React Router可以将URL拆分为参数似乎很奇怪,但是没有提供一种设置这些参数的好方法吗?
我设法使用path-to-regexp
React Router使用的包来实现这一点:
this.props.history.push(pathToRegexp.compile(this.props.match.path)({ view: 'month', year: '2018' ));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句