2016-10-14 22 views
0

リアクションコンポーネントのライフサイクルは(componentWillMount、componentDidMountなど)です。また、サガは独自のライフサイクル(ミドルウェアとして動作しています)を持っています。redux-sagaと反応ライフサイクルを同期

これらの2つのライフサイクルを同期する方法はありますか?

私はそれが可能だ

+0

一般的に、コンポーネントは「安全」であるべきではありません。それらはすべてクライアントにあります。本当に安全なのは、あなたのAPI(バックエンド)だけなので、ユーザーが何らかの形で(たとえバグのためにハッキングして)権限のない「秘密」コンポーネントを表示したとしても、あなたのAPIは何も返されませんとにかく、意味のある情報は表示されません。それは理にかなっていますか? –

答えて

0

我々は(アクセスの複数のレベルで)承認と一部のコンポーネントを確保したいとき、これは問題になるかもしれないと思います。 Reactのライフサイクルイベントをフックし、redux-sagaにマッピングされたアクションをディスパッチするHOC(Higher Order Component)を作成することができます。あなたのサーガでは、takeを使用して、ライフサイクルと制御フローを同期させることができます。

実際の例が必要な場合は教えてください。 Githubのmy repositoryに例を追加します。

// HOC 
import Lifecycle from '...'; 

// Target component 
class SecretPane extends Component { 
    // ... 
} 

// Export wrapped SecretPane component 
export default Lifecycle(SecretPane); 

// ... 

function* lifecycle() { 
    yield take(COMPONENT_WILL_MOUNT); 

    // Do something before mounted 

    yield take(COMPONENT_DID_MOUNT); 

    // Do something after mounted 

    yield take(COMPONENT_WILL_UNMOUNT); 

    // Do something before unmounted 
} 
関連する問題