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