![](/img/trans.png)
[英]meteor + react “Uncaught TypeError: Cannot read property 'data' of undefined”
[英]Meteor Uncaught TypeError: Cannot read property 'push' of undefined
我的流星應用程序出現2個錯誤。 這些是下面的錯誤。 我正在使用accounts-ui-bootstrap-3,並試圖在layout.html
顯示標題模板。
這是我的一些代碼錯誤。
Uncaught TypeError: Cannot read property 'push' of undefined
Uncaught Error: There are multiple templates named 'layout'. Each template needs a unique name.
^^即使我只有一個名為layout的模板。
碼:
的layout.html
<template name="layout">
<div class="container">
{{>header}}
<div id="main" class="row-fluid">
{{>yield}}
</div>
</div>
</template>
了header.html
<template name="header">
<header class="navbar">
<div class="navbar-inner">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="{{pathFor 'postsList'}}">Test</a>
<div class="nav-collapse collapse">
<ul class="nav pull-right">
<li>{{> loginButtons}}</li>
</ul>
</div>
</div>
</header>
</template>
為什么不顯示登錄按鈕?
Router.js
Router.configure({
layoutTemplate: 'layout',
loadingTemplate: 'loading',
waitOn: function() { return Meteor.subscribe('posts'); }
});
Router.map(function() {
this.route('postsList', {path: '/'});
this.route('postPage', {
path: '/posts/:_id',
data: function() { return Posts.findOne(this.params._id); }
});
});
您是否使用mrt:accounts-ui-bootstrap-3或ian:accounts-ui-bootstrap-3? 如果您使用mrt:accounts-ui-bootstrap-3,它將不再起作用,因為不再受支持。 請改用ian:accounts-ui-bootstrap-3。
您可以省略登錄按鈕的li
元素。 將您的標頭包含項更改為以下{{> header}}
,請注意小插入符號。
編輯:
代替使用Router.map
嘗試使用Router.route
像這樣:
Router.route('/', {
name: 'postsList'
});
Router.route({'/posts/:_id',
name: 'postPage',
data: function() {
return Posts.findOne(this.params._id);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.