2017-02-24 21 views
3

正直言って角1から来て、少し角度2を知って、反応します。私はこの両方のアーキテクチャについて知っていますが、私は速いアプリを教える人のように作るのは難しくありません。経路変更前のデータを解決する

問題が発生しました。角度があるので、ルートが変更される前に、私のコントローラ/ビューを含むルートを変更するために自分のデータを解決するかどうかは簡単です。

どのように反応させることができますか?したがって、データが解決されるとすぐに経路を変更してください。私はそこに興味深いものは見つけられません。

答えて

1

react-routerをナビゲーションに使用している場合は、に電話を延期し、データが解決されるまで延期することができます。

https://github.com/ReactTraining/react-router/blob/master/docs/API.md#onenternextstate-replace-callback

+0

しかし、どのようにデータをコンポーネントに取り込むことができますか?私はこのようにしていますが、レスポンスデータをコンポーネントに渡す方法はわかりません。 –

+0

Reduxを使用する場合、通常、データをonEnterから直接コンポーネントに取り込むべきではありません。アクションをディスパッチし、レデューサーを作成し、状態を更新してから、 'connect()'を使用して状態をコンポーネントに渡します。あなたの場合は、データを解決するために非同期メソッドを呼び出す必要があり、 'redux thunk'または' redux saga'ミドルウェアを使用する必要があります。通常、 'componentDidMount()'メソッドの中にアクションをディスパッチします。それは推奨される方法です:https://facebook.github.io/react/docs/react-component.html#componentdidmount –

+0

良い例がありますか? –

0

いくつかの方法がありますが、あなたはsetRouteLeaveHookを試すことができます:

SomeRouteReactRouter.Routecomponentプロパティとして与えられた任意の構成要素である
class SomeRoute extends Component { 
    componentDidMount() { 
     this.props.router.setRouteLeaveHook(
      this.props.route, 
      nextRoute => this.routerWillLeave(nextRoute) 
     ); 
    } 

    routerWillLeave(nextRoute: History.LocationDescriptor): boolean | void { 
     /* ... *? 
    } 
} 

<Router> 
    <Route component={SomeRoute}/> 
</Router> 

https://github.com/ReactTraining/react-router/blob/master/docs/guides/ConfirmingNavigation.md

+0

私はデータをチェックする必要があります コンポーネントのレンダー/マウント/ロード後にデータを解決する必要があります。 –

+0

いつでも自由に実行できます。 – Mosho

関連する問題