React.jsのsetStateのタイミングが…

componentWillReceivePropsで親コンポーネントの変化を受け取りAJAXでデータをローディングしようとしたのですがsetStateのタイミングでつまづきました。

親から受け取ったPropsをsetStateしてもrenderされるまでは過去の情報がthis.stateには保存されているらしいです。

こんな方法が正しいのかわかりませんが、下記のような方法で解決しました。
やはり正しくなかったようです。

コメントでご指摘ただいた事を反映させると

関連記事

“React.jsのsetStateのタイミングが…” への2件のフィードバック

  1. 匿名 より:

    Reactのコンポーネントライフサイクルでは以下の順にイベントが呼び出されます

    componentWillReceiveProps

    shouldComponentUpdate

    componentWillUpdate

    render

    componentDidUpdate

    この中で、新規に更新したstateを参照することができるのはcomponentWillReceiveProps以降のイベントからとなり、
    今回のケースからすると componentWillUpdate イベントでの参照が適切かと思われます。

    Reactではライフサイクルが重要で、このあたりを理解していないと嵌る可能性があるので一度各イベントを確認するこいとをお勧めします。

  2. Rin より:

    ご指摘ありがとうございます。
    まだReactを触り始めたばかりで理解できていない部分が多いようです。

    React component ライフサイクル図
    http://qiita.com/kawachi/items/092bfc281f88e3a6e456

コメントを残す

メールアドレスが公開されることはありません。

Trackback URL

管理者の承認後に表示します。