2

アクションをトリガーするときにエラーを引き起こすと思われるRefluxストアがあります。

var taskStore = Reflux.createStore({
  listenables: [taskActions],
  init: function(){
    this.tasks = [];
    this.index = {};
    this.trigger(this.tasks);
  },
  onLoad: function(arr){
    var idx = {}
    arr.forEach(function(ele){
      idx[ele.id] = ele
    });
    this.tasks = arr;
    this.index = idx;
    this.trigger(arr);
  }
});

アクションloadが呼び出されてonLoadメソッドがトリガーされると、 this.triggerChrome のメソッドでエラーがUncaught TypeError: Cannot read property 'apply' of undefined であると言って失敗する

コール スタックは、最終的に Reflux のリッスン メソッドに到達します。

listen: function(callback, bindContext) {
    bindContext = bindContext || this;
    var eventHandler = function(args) {
        callback.apply(bindContext, args);
    }, me = this;
    this.emitter.addListener(this.eventLabel, eventHandler);
    return function() {
        me.emitter.removeListener(me.eventLabel, eventHandler);
    };
},

callback.apply のコールバックですが、そのコールバックが何らかの理由で未定義のようです。

このような深刻なエラーを引き起こすために、私は明らかに何か間違ったことをしていますが、何がわかりません。私の店で何が間違っているのか誰か教えてもらえますか?

ストアを呼び出すコードは、次のように呼び出します。

var App = React.createClass({
    mixins: [
        Reflux.connect(taskStore,"tasks"),
        Reflux.connect(taskIndex, "index"),
    ],
...
4

2 に答える 2

2

この問題を自分で解決するのに 1 時間費やしました。

私の場合、Reflux.ListenTo にトリガーするように指示したメソッドは存在しませんでした。

だから私は持っていた

Reflux.listenTo('FooStore', 'onUserDeleted')

ストアに onUserDeleted: function() { } がありませんでした。

于 2015-11-20T06:21:34.737 に答える