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