ruby-on-rails – 未捕获的ReferenceError:未定义FluxDispatche
发布时间:2020-12-17 02:49:33 所属栏目:百科 来源:网络整理
导读:这是我第一次尝试使用反应.我遇到了下面显示的以下错误.未捕获的ReferenceError:未定义FluxDispatcher.我相信我已经要求所有正确的宝石和 javascript文件但是,我无法弄清楚为什么没有定义FluxDispatcher.下面我列出了一些文件,如果我需要提供更多信息,请告
这是我第一次尝试使用反应.我遇到了下面显示的以下错误.未捕获的ReferenceError:未定义FluxDispatcher.我相信我已经要求所有正确的宝石和
javascript文件但是,我无法弄清楚为什么没有定义FluxDispatcher.下面我列出了一些文件,如果我需要提供更多信息,请告诉我.
的Gemfile source 'https://rubygems.org' gem 'rails','4.2.2' gem 'sqlite3' gem 'sass-rails','~> 5.0' gem 'uglifier','>= 1.3.0' gem 'jquery-rails' gem 'jbuilder','~> 2.0' gem 'awesome_print','~> 1.7' gem 'bootstrap','~> 4.0.0.alpha5' gem 'ancestry' gem 'rails_admin' gem 'react-rails' gem 'flux-rails-assets' gem 'lodash-rails' source 'https://rails-assets.org' do gem 'rails-assets-tether','>= 1.1.0' end group :development,:test do gem 'byebug' gem 'web-console','~> 2.0' gem 'spring' end appliction.js //= require jquery //= require jquery_ujs //= require tether //= require bootstrap //= require lodash //= require react //= require react_ujs //= require flux //= require eventemitter //= require components //= require app //= require_tree . app.js // var Constants = { CHANGE_EVENT: 'change',ADD_COMMENT: 'comments.add' }; var Store = new _.extend({},EventEmitter.prototype,{ _comments: [],addComment: function(comment) { this._comments[comment.id] = comment; },comments: function() { return this._comments; },addChangeListener: function(callback) { this.on(Constants.CHANGE_EVENT,callback); },removeChangeListener: function(callback) { this.removeListener(Constants.CHANGE_EVENT,emitChange: function() { this.emit(Constants.CHANGE_EVENT); } }); var AppDispatcher = new FluxDispatcher(); AppDispatcher.register(function(payload) { var action = payload.actionType; switch(action) { case Constants.ADD_COMMENT: Store.addComment(payload.comment); Store.emitChange(); break; default: // NO-OP } }); // Actions var Actions = new _.extend({},{ addComment: function(params) { AppDispatcher.dispatch({ actionType: Constants.ADD_COMMENT,comment: params }); } }); comment_list.js.jsx var CommentList = React.createClass({ componentDidMount: function() { Store.addChangeListener(this._onChange); },componentWillUnmount: function() { Store.removeChangeListener(this._onChange); },render: function() { console.log('rendering'); return ( <div> {[].map(function(comment) { return <Comment key={comment.id} {... comment} />; })} </div> ); },_onChange: function() { this.forceUpdate(); } }); //Actions var Actions = new _.extend({},comment: params }) } }); show.html.erb <div class="row"> <h1>Title: <%= @post.title %></h1> </div> <div class="row"> <div class="col-md-6"> <p> <%= @post.description %> </p> </div> <div class="col-md-6"> <p>Comments:</p> <%= react_component('CommentList') %> </div> </div> 解决方法
我正在做相同的教程=).我所做的代码更改是 –
var AppDispatcher = new Flux.Dispatcher(); 只是把“.”在Flux和Dispatcher之间. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |