React.js:将回调传递给子组件并删除组件

时间:2015-03-11 04:48:03

标签: javascript reactjs

以下是指向来源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

1 个答案:

答案 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;
    });
  },