2016-07-14 7 views
0

サーバー側から特定のデータを受信したときにトリガーするイベントが必要です。アクション結果のリアクションイベントが受信されました

私はcomponentWillReceivePropsを使用しようとしましたが、サーバーが同じデータを返すと、このイベントはヒットしません。どんなイベントを使うことができますか、受け取ったデータが同じであっても、イベントを開始したいです。

マイ減速:私のコンポーネントで

import * as constActions from './remediationConstActions'; 
import initialState from './initialState'; 

export default function alertsPageReducer(state=initialState, action){ 
    switch(action.type){ 
     case constActions.SEND_TO_SOC_SUCCESS: 
     { 
      return Object.assign({}, state, 
       { 
       remediationResult: 
        action.remediationResult 
       }); 
     } 
     default: 
      return state; 
    } 
} 

function mapStateToProps(state, ownProps) { 
    return { 
     remediationResult: state.remediation.remediationResult 
    }   
} 

componentWillReceiveProps(nextProps) { 
    console.log('remediationDidReceiveResult:' + this.nextProps.remediationDidReceiveResult);   
} 

いただきましソリューション?

+2

私は尋ねようとしている愚かな質問かもしれませんが、何も変更されていない場合、なぜコンポーネントを再レンダリングする必要がありますか?それはタイムスタンプを含んでいますか?その場合はタイムスタンプを小道具として渡すだけですか? – ivarni

+0

@ivarniそのポップアップです。ユーザーが同じボタンを2回クリックしても結果は同じです。しかし、私は結果がポップアップを表示する前に来たことを知りたいです。私は100%確信していませんが、私はそれを正しく構成していますが、この問題以外はうまくいきます。 – omriman12

+0

@ivarniは私がタイムスタンプを追加すると言うことができます、今私はどこから来たのか知りたいイベントに別の問題があります。ことを知っている?私はどのようなアクションが小道具を変えたのか知りたがっている – omriman12

答えて

0

レデューサーを追加し、レデューサーが呼び出されるたびにカウンターを増やすことができます。

return { 
    ...state, 
    remediationResult: action.remediationResult, 
    version: state.version + 1 } 

ですから、componentWillReceivePropsで、あなたのversion数を比較し、それが変更された場合、ハンドラを呼び出すことができ、小道具にこのカウンターを接続する場合。

関連する問題