【问题标题】:Meteor flow router and getting params of route in a react component流星流路由器并在反应组件中获取路由参数
【发布时间】:2016-09-15 21:54:01
【问题描述】:

如何在 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}/>)
})
}
});

可能是什么问题以及如何解决它

【问题讨论】:

    标签: javascript meteor reactjs flow-router


    【解决方案1】:

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

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

    另一个你可以尝试的纯流星是来自this reference

    FlowRouter.getParam(":_id");
    

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

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

    在上面的代码中颜色和显示是查询参数,而应用程序是路径名的一部分

    【讨论】:

    • 我会说这是一个更多的 JS 解决方案,而不是基于流星。最佳实践是通过 FlowRouter API 在 React 状态下调用它。
    • @FaysalAhmed : FlowRouter.getParam(":_id");是基于流星的,不是吗?
    猜你喜欢
    • 1970-01-01
    • 2018-03-21
    • 2014-09-03
    • 2016-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多