什么是Reat TODO示例中使用的dispatcherIndex

Kua*_*uan 4 flux reactjs

所有,

我刚开始学习阵营FLUX与Facebook TODO例如 这里

TODO Store中有一个名为dispatcherIndex的字段,我想知道该字段用于什么?

谢谢

Raf*_*yng 5

dispatcherIndex永远不会被调用,你通常会从一个函数,即预期,TodoStore.dispatcherIndex().

但由于值dispatcherIndex是一个函数调用(不只是一个函数,而是一个函数调用),该函数调用发生在对象的初始化中.因此,当TodoStore初始化时,运行此代码(函数调用):

AppDispatcher.register(function(payload) {
  var action = payload.action;
  var text;

  switch(action.actionType) {
    case TodoConstants.TODO_CREATE:
      text = action.text.trim();
      if (text !== '') {
        create(text);
        TodoStore.emitChange();
      }
      break;

    case TodoConstants.TODO_DESTROY:
      destroy(action.id);
      TodoStore.emitChange();
      break;
  // add more cases for other actionTypes, like TODO_UPDATE, etc.
  }
  return true; // No errors. Needed by promise in Dispatcher.
})
Run Code Online (Sandbox Code Playgroud)

你正在调用AppDispatcher.register并传递一个回调函数.你传递的这个回调现在没有执行,它被注册(添加到_callbacks数组中)以便稍后调用,只要你调用其中一个调用的方法AppDispatcher.handleViewAction,即TodoActions.createTodoActions.destroy.