我以前从未得到过这个,我只能假设它也找不到div
它试图渲染的元素?这是没有意义的,因为当我console.log
在事件触发之前和之后有问题的元素存在时,但会抛出错误......
下面是一个主干视图 - 渲染一个 reactjs 组件,我们传入deleteEvent: this.handleDeleteEvent.bind(this)
它允许我们连续单击删除,它将冒泡事件并遍历,本质上是重新调用集合并重新渲染组件。
但它React.renderComponent()
是导致手头问题的原因:
AisisWriter.Views.PostIndex = AisisWriter.Views.CoreView.extend({
writer_posts: new AisisWriter.Collections.Posts(),
handleDeleteEvent: function(id){
var toDelete = new AisisWriter.Models.Post();
toDelete.set({id: id});
toDelete.destroy().then(this.deleted(id), this.failedToDelete);
return false
},
deleted: function(id) {
var options = { reset: true };
this.writer_posts.fetch(options).then(this.postsRecieved.bind(this), this.serverError);
},
postsRecieved: function(collection, response, options) {
this.render(collection);
if ($('#flash-error').is(':visible')){
$('#flash-error').hide();
}
$('#flash-success').show();
},
serverError: function() {
if ($('#flash-success').is(':visible')){
$('#flash-success').hide();
}
$('#flash-error').show();
},
failedToDelete: function() {
if ($('#flash-success').is(':visible')){
$('#flash-success').hide();
}
$('#flash-error').show();
},
render: function(postsObject) {
element = this.getElement();
var totalPerPage = postsObject.total_pages.total;
var posts = postsObject.posts;
React.renderComponent(new PostTable({posts: posts, maxPages: totalPerPage, deleteEvent: this.handleDeleteEvent.bind(this)}), element);
}
});
这是第一次渲染 - 很好用。你会看到一个带有帖子的表格,然后你点击删除它一直通过 - 从模型中删除它,一直调用集合进行渲染。从那里它获取总页面,帖子,然后将它们传递给组件,在那个阶段我得到:
Uncaught TypeError: Cannot read property 'parentNode' of undefined
有没有人有任何想法?