未捕获的错误:操作缺少侦听方法React/Reflux

Uncaught Error : Action is missing a listen method React/Reflux?

本文关键字:方法 React Reflux 错误 操作      更新时间:2023-09-26

我是React Redux新手。这是我正在开发的一个简单的应用程序。但是错误是我不能通过Action连接到store。

这是我的错误

utils.js:78 Uncaught Error: action is missing a listen method

topic-list.js

    var React = require('react');
var Reflux = require('reflux');
var TopicStore = require('../stores/topic-store');
var Actions = require('../actions');
module.exports = React.createClass({
    mixins:[
      Reflux.listenTo(TopicStore,'onChange')  
    ],
    getInitialState:function () {
      return{
          topics:[]
      }
    },
    componentWillMount:function () {
       //Actions.getTopics()
        Actions.getTopics()
    },
    render:function () {
      return <div className="list-group">
          ToPic List
          {this.renderTopics()}
      </div>
    },
    renderTopics:function () {
        return this.state.topics.map(function(topic) {
            return <li key={topic.id}>
                {topic.description}
            </li>
        })
    },
    onChange:function (evet,topics) {
        this.setState({topics:topics})
    }

});

actions.js

var Reflux = require('reflux');
module.exports = Reflux.createAction([
    'getTopics',
]);

topic-store.js

    var Api = require('../utils/api');
var Reflux = require('reflux');
var Actions = require('../actions');

module.exports = Reflux.createStore({
    listenables:[Actions],
   getTopics:function () {
       return Api.get('topics/defaults')
           .then(function (json) {
               this.topics = json.data;
               this.triggerChange();
           }.bind(this));
   },
    con:function () {
      console.log('Working')
    },
    triggerChange:function () {
        this.trigger('change',this.topics)
    }
});

错误信息暗示您正在尝试收听无法收听的内容(例如:它没有listen方法。)

这意味着错误的来源可能是:
  1. listenables:[Actions] from topic-store.js
  2. Reflux.listenTo(TopicStore,'onChange') from topic-list.js

我相信是前者,因为actions.js中有一个错别字,因为方法是Reflux.createActions,而不是Reflux.createAction