0
リアクションコンポーネントのライフサイクルは(componentWillMount、componentDidMountなど)です。また、サガは独自のライフサイクル(ミドルウェアとして動作しています)を持っています。redux-sagaと反応ライフサイクルを同期
これらの2つのライフサイクルを同期する方法はありますか?
私はそれが可能だ
リアクションコンポーネントのライフサイクルは(componentWillMount、componentDidMountなど)です。また、サガは独自のライフサイクル(ミドルウェアとして動作しています)を持っています。redux-sagaと反応ライフサイクルを同期
これらの2つのライフサイクルを同期する方法はありますか?
私はそれが可能だ
我々は(アクセスの複数のレベルで)承認と一部のコンポーネントを確保したいとき、これは問題になるかもしれないと思います。 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
}
一般的に、コンポーネントは「安全」であるべきではありません。それらはすべてクライアントにあります。本当に安全なのは、あなたのAPI(バックエンド)だけなので、ユーザーが何らかの形で(たとえバグのためにハッキングして)権限のない「秘密」コンポーネントを表示したとしても、あなたのAPIは何も返されませんとにかく、意味のある情報は表示されません。それは理にかなっていますか? –