【发布时间】:2017-02-10 16:23:22
【问题描述】:
我正在构建我的第一个 react-native 应用程序。我习惯于使用 Flux MVC 模式构建 React 应用程序。我已经(正确地)将 Flux 集成到我的 React Native 项目中,但是调度程序上的 register 函数似乎完全没有响应。
Actions.js
import AppConstants from '../constants';
import AppDispatcher from '../dispatcher';
export default {
setUser (user) {
AppDispatcher.dispatch({
actionType: AppConstants.SET_USER,
user: user
})
}
}
Store.js
import AppDispatcher from '../dispatcher';
import AppConstants from '../constants';
import assign from 'object-assign';
import { EventEmitter } from 'events';
const CHANGE_EVENT = 'change';
const AppStore = assign({}, EventEmitter.prototype, {
emitChange () {
this.emit(CHANGE_EVENT);
},
addChangeListener (callback) {
this.on(CHANGE_EVENT, callback);
},
removeChangeListener (callback) {
this.removeListener(CHANGE_EVENT, callback);
},
dispatcherIndex: register(function (action) {
console.log(action); // <-- No response
})
});
export default AppStore;
Dispatcher.js
import { Dispatcher } from 'flux';
module.exports = new Dispatcher();
我什至尝试重写 Dispatcher.js 文件,以便对 dispatch 和 register 函数进行硬编码。我收到了来自dispatch() 的回复,但从未收到来自register() 的回复。
Dispatcher2.js
import { Dispatcher } from 'flux';
const flux = new Dispatcher();
export function register (callback) {
console.log('event!');
return flux.register(callback);
}
export function dispatch (action) {
console.log(action);
flux.dispatch(action);
}
【问题讨论】:
标签: javascript reactjs react-native flux reactjs-flux