我正在使用react-router with react。
我需要在我的网址中使用查询字符串,如下所示:
let url = '/some/path/legal?id=2&name=QA_3%206*6*6';
this.context.router.transitionTo(url);
但是,它不会执行重定向并抛出错误:
Unhandled promise rejection Error: Invariant Violation: Missing "splat" parameter for path "/some/path/legal?id=2&name=QA_3%206*6*6"
似乎查询字符串中不允许使用splat(*)?
答案 0 :(得分:0)
我还没有使用过旧版本的react-router,但看起来签名是:
Error in UseMethod("as.igraph") :
no applicable method for 'as.igraph' applied to an object of class "list"
所以试试:
routeName (string), params (object), query (unused)
我原以为它是this.transitionTo('/some/path/legal', { id: 2, name: 'QA_3%206*6*6' });
but it seems that is unused 。
编辑,OP测试并且似乎已经使用了,所以:
query
或许考虑更新到至少v1,它不再使用this.transitionTo('/some/path/legal', null, { id: 2, name: 'QA_3%206*6*6' });
。请参阅https://github.com/rackt/react-router/blob/master/upgrade-guides/v1.0.0.md#navigation-mixin。
答案 1 :(得分:0)
对我来说,这只是在转换到新路线时明确设置splat
参数的情况:
router.transitionTo('help', {splat: 'content'});
鉴于我的路线是:
<Route path="help/*" handler={HelpPage}/>