以下是指向来源https://github.com/bengrunfeld/gae-react-flux-todos/tree/master/src/js
的链接在React教程中,它展示了如何将回调传递给子组件,然后可以继续使用它。
假设您要生成待办事项列表,但是要为每个Todo传递回调,以便在该待办事项上点击delete
按钮时,它将调用其父级中的函数removeTodo
({ {1}})将其从DOM中删除。
所以我遇到的问题是,在以下示例中,由于TodoList
的范围,我无法将this.props.data.map
传递给this.removeTodo
。如果您尝试,它会错误地显示为<Todo>
。
其次,即使我可以,我也不确定如何从DOM中删除Todo,因为我无法在undefined
内访问state
的可变版本 - 它仅作为不可变TodoList
使用。如果我可以改变this.props
,我可以调用state
,这将触发渲染,这将从列表中删除项目。
那你怎么解决这个问题呢?
setState
答案 0 :(得分:1)
查看您的代码,因为您正在关注Flux架构,所以在删除商店中存在的CHANGE_EVENT
中的待办事项后,您需要发出deleteTodo
。
deleteTodo: function(todo) {
this.deleteTodoOnServer(todo).done(function(result){
//DELETE your the TodoItem here
AppStore.emitChange(AppConstants.CHANGE_EVENT);
return;
}).fail(function(result){
console.log('fail');
// return 'error in deleteTodoOnServer Ajax call: ' + result;
});
},