2015-02-11 25 views
9

React JS'un Facebook flux mimarisini kullanarak bir uygulama yapıyorum. Giriş formuna sahip olduğum uygulamanın temel bölümünü oluşturdum. Kullanıcıyı mağazada doğrulamak için düğüm sunucusundan sonuç alıyorum, sunucudan sonuç alıyorum, Artık başardığımdan sonra kullanıcıyı ana sayfaya nasıl yönlendirebilirim?React-router-component kullanarak ajax çağrısından başarılı olduktan sonra nasıl yönlendirilir?

Reaktif yönlendirici bileşenini okudum ve istemci tarafında yeniden yönlendirebiliyorum ancak Store'daki ajax öğesinden alınma zamanında yeniden yönlendirme yapamıyorum. Lütfen bana yardım et.

cevap

9

Navigation karışımından transitionTo işlevini kullanmanız gerekir: http://git.io/NmYH. Böyle bir şey olurdu: Bu çalışması gerekir

// I don't know implementation details of the store, 
// but let's assume it has `login` function that fetches 
// user id from backend and then calls a callback with 
// this received id 
var Store = require('my_store'); 
var Router = require('react-router'); 

var MyComponent = React.createClass({ 
    mixins: [Router.Navigation], 

    onClick: function() { 
    var self = this; 
    Store.login(function(userId){ 
     self.transitionTo('dashboard', {id: userId}); 
    }); 
    }, 

    render: function() { 
    return: <button onClick={this.onClick}>Get user id</button>; 
    } 
}); 
+0

Denedim ama şimdi URL'yi değiştirdi, ancak bu bileşeni göstermiyor. – Toretto

+0

Url'yi manuel olarak değiştirirseniz işe yarar mı? Muhtemelen Rota'nızın, geçiş yaptığınız giriş formuna değil, doğru bileşene başvurduğunu kontrol etmelisiniz. – kulesa

+0

Yönlendirme için http://vimeo.com/channels/797633/page:5 'Ders 7' bölümünü takip ederek bir bağlantı ekledim ve iyi çalışıyor. Bu bağlantıya tıkladığımda, o sayfaya yönlendiriyor ve sonucu gösteriyor, ancak yukarıdaki durumda değil mi? – Toretto

1

var Store = require('Store'); 
var Navigatable = require('react-router-component').NavigatableMixin 

var LoginComponent = React.createClass({ 
    mixins: [ Navigatable ], 

    onClick: function() { 
     Store.login(function(userId){ 
      this.navigate('/user/' + userId) 
     }.bind(this)); 
    }, 

    render: function() { 
     return <button onClick={this.onClick}>Login</button>; 
    } 
}); 
2
Ben bir yönlendirici için ihtiyaç tepki elemanı özelliklerine ilave ve bunun gibi yönlendirici kullanıldığında Benim için çalıştı

:

// this is the redirect 
    this.context.router.push('/search'); 

// this should appear outside the element 
    LoginPage.contextTypes = { 
     router: React.PropTypes.object.isRequired 
    }; 
    module.exports = LoginPage; 
İlgili konular