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

react-router transitionTo: Invariant Violation: Missing "splat" parameter for path

我正在使用 react-router 和 react。

我需要在 url 中使用查询字符串,如下所示:

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 (*)?

这个老版本的react-router我没用过,不过签名好像是:

routeName (string), params (object), query (unused)

所以尝试:

this.transitionTo('/some/path/legal', { id: 2, name: 'QA_3%206*6*6' });

我还以为是 query but it seems that is unused.

编辑,OP 已测试,似乎已被使用,所以:

this.transitionTo('/some/path/legal', null, { id: 2, name: 'QA_3%206*6*6' });

也许考虑更新到至少 v1,它不再使用 transitionTo。参见 https://github.com/rackt/react-router/blob/master/upgrade-guides/v1.0.0.md#navigation-mixin

对我来说,这只是在转换到新路线时显式设置 splat 参数的情况:

router.transitionTo('help', {splat: 'content'});

鉴于我的路线是:

<Route path="help/*" handler={HelpPage}/>