2016-08-25 12 views
1

Я новичок, чтобы реагировать на Redux. Это просто приложение, которое я разрабатываю. Но ошибка в том, что я не могу подключиться к хранилищу через Action.Ошибка при отсутствии: в действии отсутствует метод прослушивания React/Reflux?

Это моя ошибка

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

тема-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', 

]); 

тема-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) 

    } 
}); 

ответ

0

Сообщение об ошибке подразумевает, что вы пытаетесь прослушивать то, что невозможно прослушать (т.е. он не имеет метод слушать)

Это означает, что источник ошибки может быть либо:.

  1. listenables:[Actions] из topic-store.js
  2. Reflux.listenTo(TopicStore,'onChange') из topic-list.js

Я считаю, что это прежний, поскольку существует опечатка в actions.js, так как метод Reflux.createActions, а не Reflux.createAction.