2016-10-02 12 views
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(); 

私は、dispatchregisterの機能がハードコードされるように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); 
} 

答えて

0

では、このマニュアルを通過します。あなたのコードについてはわかりませんが、この方法でもフラックスを使用することができます。 http://fluxxor.com/。これは非常に簡単で使いやすいです。これがあなたの質問に役立つなら、答えを受け入れてください。

関連する問題