0

Flux で認証モジュールを作成しています。アクション: auth、auth_success、auth_error。アクション auth_error が発生すると、ルーターは「/login」に移動することを考えています。アクション、アクション、auth_success が発生すると、ルーターは「/dashboard」に移動します。しかし、アクションはディスパッチャにしか行かないため、間違っているようです。コールバックをルーティングする方法がわかりません。たぶん店の価値をチェックしてください?

4

1 に答える 1

0

mixinたとえば、React クラスに Route.Navigation オブジェクトを使用する必要があります。

/** @jsx React.DOM */

var React = require('react');

var Router = require('react-router')
  , Navigation = Router.Navigation;

var UserStore = require('user-store');

var YourClass = module.exports = React.createClass({
  mixins:[Navigation], //This is very important

  getInitialState: function() {
    return {};
  },

  componentWillMount: function(){
    UserStore.addChangeListener(this._method);
  },
  componentWillUnmount: function(){
    UserStore.removeChangeListener(this._method);
  },

  render: function() {
    return (
      <div>
      </div>
    );
  },

  _method: function() {
    // From here you can call methods of Navigator Object
    this.transitionTo('SomeRouteName'); //This method will render the specified <Route>
  } 
});

詳細については、 https://github.com/rackt/react-router/blob/master/docs/api/mixins/Navigation.mdを確認してください。

ルートを変更し、フラックス アーキテクチャに従って、必要なtransitionToユーザー ストアのコールバックから呼び出す必要があります。

コードに例を追加しました。特定のケースに合わせてカスタマイズできます。

ハッピーコーディング!

于 2015-03-06T19:08:17.323 に答える