我正在尝试使用流量路由器在流星中做出反应。路线的定义如下:
FlowRouter.route('/',
{
action(){
const containerElement = document.getElementById("react-root");
if (containerElement) {
const app = React.createElement("<App/>");
ReactDOM.render(app, containerElement);
} else {
console.log("no element react-root found");
}
}
})
并且HTML非常基础:
<head>
<title>Todo List</title>
</head>
<body>
<div id="react-root">react-root</div>
</body>
当我启动meteor并导航到localhost:3000时,我在页面上显示react-root
,在控制台中显示消息no element react-root found
。
我尝试将路由定义包装在Meteor.startup(
中,但后来我收到错误,指出路由/
未定义。
答案 0 :(得分:1)
来自arunoda的this comment:
现在Flow Router不会等待DOM。我们在布局层中进行。
因此,在您选择使用React Layout或Blaze Layout之前,您可以像这样包装代码,以便仅在加载DOM时触发它:
FlowRouter.route('/',
{
action(){
$(function () {
const containerElement = document.getElementById("react-root");
if (containerElement) {
const app = React.createElement("<App/>");
ReactDOM.render(app, containerElement);
} else {
console.log("no element react-root found");
}
});
}
})