Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript FlowRouter-将内容插入HTML模板_Javascript_Meteor_Reactjs_Flow Router_Kadira - Fatal编程技术网

Javascript FlowRouter-将内容插入HTML模板

Javascript FlowRouter-将内容插入HTML模板,javascript,meteor,reactjs,flow-router,kadira,Javascript,Meteor,Reactjs,Flow Router,Kadira,我正在尝试学习meteor react,我有一个关于使用FlowRouter将内容插入HTML模板页面的问题 假设所有内容都正确导入,以下是相关代码: routes.jsx 在index.jsx中,{content=()=>null}。这难道不意味着内容是一个没有参数且输出为null的对象文本吗 但是,当内容在routes.jsx中传递时,它是()=>(/Post postId={postId}/>),那么该内容输出的Post不是以postId作为道具传递的吗 这与index.jsx期望的内容如

我正在尝试学习meteor react,我有一个关于使用FlowRouter将内容插入HTML模板页面的问题

假设所有内容都正确导入,以下是相关代码:

routes.jsx

在index.jsx中,{content=()=>null}。这难道不意味着内容是一个没有参数且输出为null的对象文本吗

但是,当内容在routes.jsx中传递时,它是()=>(/Post postId={postId}/>),那么该内容输出的Post不是以postId作为道具传递的吗


这与index.jsx期望的内容如何匹配?

在您的示例中,
content
是一个函数文本,在这两种情况下都没有输入参数,它返回一个新的React组件。(
null
也是有效的React组件。)

内容:()=>()
在这种情况下,
postId
不是一个参数,而是一个闭包变量。当达到
postId
的值时,将在运行时嵌入该值创建closure对象


index.jsx
中,您的布局需要一个不带参数的函数来返回React组件,这正是
content
的含义。当您调用
content()
时,它会创建一个新的
Post
组件,并将
postId
作为道具从其closure对象传递出去。

在Flow Router中,没有直接的方法将数据从路由传递到模板,请注意,这是FR的扩展分支,使用钩子将数据从路由器传递到模板
FlowRouter.route('/post/:postId', {
  name: 'posts.single',
  action({postId}) {
    mount(MainLayoutCtx, {
      content: () => (<Post postId={postId}/>)
    });
  }
});
const Layout = ({content = () => null }) => (
  //code here
);
content: () => (<Post postId={postId}/>)