繁体   English   中英

没有正确触发React事件

[英]Not triggering React event correctly

我有一家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方法时,它在Chrome的this.trigger方法上失败,并指出错误是未捕获的TypeError:无法读取未定义的属性“ apply”

调用堆栈最终使我进入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"),
    ],
...

我遇到了同样的问题。 就我而言,声明组件是我的错:

global.FilmList = React.createClass({
    mixins: [Reflux.connect(filmListStore, "list")],
    componentDidMount: function() {
        this.listenTo(filmListStore, this.eventChange);
    },
    render: function() {

我已经设置了mixins和this.listenTo()方法。 我删除了this.listenTo()并解决了问题

只是花了一个小时试图自己解决这个问题。

就我而言,我告诉Reflux.ListenTo触发的方法不存在。

所以我有

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

而且我在商店中没有onUserDeleted:function(){}。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM