質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Redux

Reduxは、JavaScriptアプリケーションの状態を管理するためのオープンソースライブラリです。ReactやAngularで一般的にユーザーインターフェイスの構築に利用されます。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

0回答

1647閲覧

Reduxを用いると描画が1テンポ遅れてしまう

退会済みユーザー

退会済みユーザー

総合スコア0

Redux

Reduxは、JavaScriptアプリケーションの状態を管理するためのオープンソースライブラリです。ReactやAngularで一般的にユーザーインターフェイスの構築に利用されます。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2018/02/27 09:28

react,reduxを用いてアプリを開発しています。

ページが描画されるタイミングで、サーバーからデータを取得してそれを表示するものを作っているのですが、表示されるまで1テンポ遅れてしまいます。

具体的には、

  • 親コンポーネントA
  • 子コンポーネントB

があります。

親コンポーネントのイメージです。
componentWillMount()内でサーバーからデータを取得し、
取得したものをReduxのリストにセットします。

render()の中では子コンポーネントを複数描画します。

javascript

1class Parent extends React.Component { 2 3 componentWillMount(){ 4 // 1.サーバーからデータを取得 5 // 2.reduxで作成したリストに値を代入する 6 } 7 8 render() { 9 const answList = [] 10 for(var i=0; i<10; i++){ 11 answList.push(<Child {...this.props} ansIndex={i}/>) 12 } 13 14 return ( 15 <Page> 16 {ansrList.reverse()} 17 </Page> 18 ) 19 } 20}

子コンポーネントのイメージです。
親でセットされたReduxのリストから適当な値を選んで表示します。

javascript

1class Child extends React.Component{ 2 render() { 3 let reduxList = this.props.reduxList 4 return ( 5 <AnsListContents> 6 {reduxList.hoge} 7 </AnsListContents> 8 ) 9 } 10}

この様に実装すると、

  1. Aが表示されるためのページ遷移ボタンをクリックする
  2. Aが表示される
  3. Bの中にReduxのリストは表示されていない
  4. 一度前のページに戻る
  5. 再びAが表示されるためのページ遷移ボタンをクリックする
  6. Aが表示される
  7. Bの中にReduxのリストが表示されている

というふうに1テンポ遅れてしまいます。

reactのライフサイクルとReduxのライフサイクルの関係の問題だと思うのですが、
これってReduxを用いたままイメージ通りの実装することは可能でしょうか。

また、他の部分ではReduxを使い、
このように1テンポ遅れるところはreduxを使わずにstateで実装することも考えているのですが、
1アプリノ中にreduxとstateが混在しているのは設計としてはあまりよくないのでしょうか。

どなたかご存じの方がいらっしゃれば教えて頂けるとうれしいです。
よろしくお願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

HayatoKamono

2018/02/28 13:00

現象を再現出来る最低限のサンプルコードを用意して掲載頂くことは可能ですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問