2017-05-07 19 views
0

私は叙事詩でredux-observableを使用しています。redux-observableアクションが実行されると遷移を実行します

return action$.ofType('APPLY_SHOPPING_LISTS') 
      .flatMap(() => Observable.concat(Observable.of({ type: 'APPLYING_SHOPPING_LISTS' }), Observable.of({ type: 'APPLIED_SHOPPING_LISTS' }).delay(5000); 

叙事詩は私が移行を実行したい「APPLIED_SHOPPING_LISTS」を発射終了すると、私は反応し、ルータを使用しています。これを行うのに最適な場所は何ですか?私はredux-history-transitionsを見ましたが、これは私が使うべきアドインですか?

さらに

はこれに追加するには、私が使用しReduxの履歴-遷移を行なったし、これが起こることを、URLやトランジションを変更するように見えるん以下

return action$.ofType('APPLY_SHOPPING_LISTS') 
      .flatMap(() => Observable.concat(Observable.of({ type: 'APPLYING_SHOPPING_LISTS' }), Observable.of({ type: 'APPLIED_SHOPPING_LISTS', meta: { 
         transition: (prevState, nextState, action) => ({ 
          pathname: '/Shopping', 
         }), 
        } }).delay(5000); 

に私が下に設定されているしかし、コンポーネントをこれを変更します'/ Shopping'パスはレンダリングされません。それは現在のページにとどまります。これは、あなたが反応し、ルータv3を使用している場合は、私のルートは

<Route path='/' component={App}> 
    <IndexRoute component={LoginContainer} /> 
    <Route path='login' component={LoginContainer} /> 
    <Route path='landing' component={LandingComponent} /> 
    <Route path='Shopping' component={ShoppingPathComponent} /> 
</Route> 

答えて

0

のように見えるものであるかの前に、あなたがreact-router-reduxのように、Reduxの行動で歴史を置き換える/プッシュするようになるミドルウェアを使用することができます。私はredux-history-transitionsに精通していませんが、同様に動作するかもしれません。

react-router-reduxを使用すると、ヒストリを遷移させたいアクションを発生させることを意味します。

ですから、pushアクションの作成者をインポートしたい、とだけAPPLIED_SHOPPING_LISTS後に別のアクションとして、それを追加します。

全体で
Observable.of(
    { type: 'APPLIED_SHOPPING_LISTS' }, 
    push('/Shopping') 
) 

、このような何か:

import { push } from 'react-router-redux'; 

const somethingEpic = action$ => 
    action$.ofType('APPLY_SHOPPING_LISTS') 
    .flatMap(() => Observable.concat(
     Observable.of({ type: 'APPLYING_SHOPPING_LISTS' }), 
     Observable.of(
     { type: 'APPLIED_SHOPPING_LISTS' }, 
     push('/Shopping') 
    ) 
     .delay(5000) 
    )); 

あなたが」これを書いている時点でv4を使っていますが、react-router-reduxはまだそれと互換性はありませんが、アクティブなのはdevelopment hereです。

+0

しかし、これは私がアクションから副作用をしていることを意味していませんか?プッシュを使うと? –

+0

@tmpdev質問を言い換えることができますか? – jayphelps

+0

redux(flux)によると、副作用を避けるべき行動ではないのですか? –

関連する問題