0
私は最初の反応ネイティブアプリケーションを構築しています。私はReactアプリケーションを構築し、Flux MVCパターンを使用します。私はFluxを私のReact Nativeプロジェクトに(正しく)統合しましたが、ディスパッチャーのregister
関数は完全に応答していないようです。React Native + Flux、応答しないディスパッチャ
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();
私は、dispatch
とregister
の機能がハードコードされるようにDispatcher.jsファイルを書き直そうとしました。私は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);
}