2017-09-30 10 views
-2

私は反応ネイティブでアプリを作成しました。このアプリは、3つの画面と1つのメニューが含まれています。画面をナビゲートした後にリモートURLからデータをロードする方法は?

画面1:ホームページ(コンテンツのリスト:ユーザー情報、写真、メンバーシップの日付となど) 画面2:ユーザーの詳細(タップ、ユーザ画面がロードされ、映画のユーザーが既に持っている示して) 画面3:Searchユーザー

メニューが左から右に開きます。

ナビゲーションを使用せずにこれをコーディングしましたが、今ではナビゲーションを追加したいと思います。しかし、これをコード化すると、私はすべてのURL要求を処理し、正しい画面を表示するルートコンポーネントを使用しました。たとえば、アプリが最初に起動すると、ホーム画面がロードされ、this.setState({ page: 'home', loading: true })を使用し、render()の下では、this.state.pageをチェックして表示する画面を取得します。 2つのsetStateがあります(最初はリクエスト前、2回目はリクエスト後)。最初の呼び出しの後、私はページを表示しますが、データはロードされず、デザインだけが表示されます。要求がいくつかのデータとともに返された後、render()は再び実行されますが、今回はデータで実行されます。

これをナビゲーションに移動するにはどうすればよいですか?私はそれをする方法を見つけることができなかったことを意味します。私はコードを混乱させたくないし、以前はナビゲーションを使っていなかった。私はタブバーやトップバーを表示したくありません。私はこのハンドリング・プレスをしたいだけです。タブバーとトップバーは私のデザインの一部ではありません。

+0

あなたの質問は、あなたの問題が本当に何であるかについて少し広範で不明です。もっと明確にして、現在のコードの[mcve]を追加してください。 – bennygenel

答えて

0

componentDidMount()にデータを取得する必要があります。 Hereはドキュメントです。

emxempleの場合、ユーザーのページに切り替えると、コンポーネントがマウントされます。最初はあなたの状態でloadingを真にしておきます。 componentDidMount()では、関数を呼び出してデータを取得します。データを受け取ったら、loadingをfalseに設定して、情報を表示します。

+0

componentDidMount()は、i setState()が同じ画面で別のデータをレンダリングしてロードする必要があるとします:trueしかしcomponentDidMountは1回だけ発生します – blacksun

関連する問題