ストアを還流

逆流リスナーの両方でストア(アクションのリスニングだけでなく、店に耳を傾けるの両方)が、それはまた、出版社です。

まず、個々の行動を聞いて

CONST還流=(「還流」を必要とします)。

CONSTアクション = Reflux.createAction()。
CONST店舗 = Reflux.createStore({ 
    INIT(){ 
        この .DATA = {NUM:0 };
         // ストア监听アクション
        この .listenTo(アクション、関数(){
             この .data.num ++ ;
             この .trigger(この.DATA ); 
        } .bind())
    } 
})
// 监听ストア触发 
store.listen(データ=> にconsole.log(データ))。
//触发アクション
action.trigger(「アクションの」)。
アクション(); 
アクション(); 
アクション(); 
アクション(); 
アクション();

注:1. store.listen方法自体が監視するためのトリガ格納します。

2. store.listenToは、他のオブジェクトに耳を傾けるを監視することができます。

第二には、複数のアクションを監視しながら、

CONST還流=(「還流」を必要とします)。

// CONSTアクション= Reflux.createActions([ 'アクション1'、 'アクション2'])。
CONSTアクション= Reflux.createActions({ 
    アクション1:{ 
        asyncResult:
    }、
    アクション2:{ 
        asyncResult:
    } 
})。

CONST店舗 = Reflux.createStore({ 
    listenables:アクション、
    // INIT(){ 
    //      this.listenToMany(アクション)
    // }、
    アクション1(){ 
        にconsole.log( 'アクション1でFUNC' ); 
    }  
    onAction1Completed() {
        にconsole.log ('アクション1が完了' 
    }、
    onAction2(){ 
        にconsole.log( 'FUNCアクション2で' 
    } 
)} 

)(actions.action1。
actions.action2(); 
)(actions.action1.completed。

ここでは、属性listenables CREATESTOREまたはinit関数で使用listenToManyは、アクションの複数を監視するために実装することができます。この文言は、コールバック関数に対応して、同じ名前がアクション1のように、各アクションに関連付けられてもよい;例えばonAction2よう+アクション、上にも使用することができます。asyncResult属性定義アクション場合、デフォルトは完了し、2人の子供が失敗し、以下の通りです。

三つは、「還流」から結合逆流{createActionインポートデモ、CREATESTORE}と反応させます

以下からの輸入が反応「が反応します」; 

CONSTアクション = createAction()。
CONST店舗 = CREATESTORE({ 
    INIT(){ 
        この .DATA = {NUM:0 };
         この .listenTo(アクション、この.onClick); 
    } 
    のonClick(){ 
        この .data.num ++ ;
         この .trigger(この.DATA); 
    } 
})
//はUI反応させ
クラスContainerUIがReact.Component {延び
    コンストラクタ(小道具){ 
        スーパー(小道具)。
        この .state = { 
            NUM:0 
        } 
    } 
    componentDidMount(){ 
//閉じる機能が生成し
、この .unmount = store.listen(データ=> { この.setState({ NUM:data.num }) }) } componentWillUnmont(){
      //閉じるように関数を呼び出し
、これを。アンマウント(); } (レンダリング){ リターン <div> { この.state.num} <アクションボタンのonClick = {}>増加</ボタン> </ div> } } エクスポート デフォルト ContainerUIを。

 

おすすめ

転載: www.cnblogs.com/ceceliahappycoding/p/12368078.html