流星流路由器并在反应组件中获取路由参数

Meteor flow router and getting params of route in a react component

如何在 React 组件中获取路由的参数 我正在使用反应作曲家包中的反应容器 如果这是整条路线

https://learnbuildrepeat-tevinthuku.c9users.io/ReadProjectMeta/wD98XTTtpf8ceyRJT

如何才能得到

wD98XTTtpf8ceyRJT

并将其值存储在反应组件内的变量中。 我尝试使用

FlowRouter.getParam() 但它不起作用。我一直未定义

import React from 'react';
export default class ReadProjectMetaLayout extends React.Component {
 render() {
 var category = FlowRouter.getQueryParam();
console.log(category);
return (
 <div>
 <h4>Hello World</h4>
 </div>
 )
 }
}

这是路线

FlowRouter.route("/ReadProjectMeta/:_id", {
name: 'project.meta',
action(params) {
mount(ReadProjectMetaLayoutContainer, {
components: (<ReadProjectMeta  _id={params._id}/>)
})
}
});

可能是什么问题,我该如何解决

只获取字符串的最后一部分:

location.pathname.substr((location.pathname.lastIndexOf('/')+1))

另一个你可以尝试的纯粹基于流星的东西来自 this reference:

FlowRouter.getParam(":_id");

注意: 您的解决方案在获取查询参数时不起作用,查询参数是在 url 中“?”之后传递的参数

/apps/this-is-my-app?show=yes&color=red

上面代码中color和show是query参数,apps是pathname的一部分

  • FlowRouter.getParam(paramName) returns the value of a single URL parameter
  • FlowRouter.getQueryParam(paramName) returns the value of a single URL query parameter

参考: https://guide.meteor.com/routing.html#accessing-route-info