react-router transitionTo:不变违规:缺少路径的“splat”参数

时间:2016-01-06 07:53:46

标签: reactjs react-router

我正在使用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(*)?

2 个答案:

答案 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}/>