我正在Flux中编写一个身份验证模块,actions:auth,auth_success,auth_error。我在想当动作auth_error发生时,路由器将转到' / login'。当action,action,auth_success发生时,路由器将转到' / dashboard'。 但这似乎是错误的,因为行动只发给调度员。我不知道如何路由回调。也许检查商店价值?
答案 0 :(得分:0)
对于instace,您必须使用Route.Navigation对象mixin
您的React类
/** @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
。
我在代码中添加了一个示例,您可以根据具体情况对其进行自定义。
快乐的编码!