2015-01-18 26 views
7

Verileri (asenkronize olmayan) RefluxJS ile başlatmanın uygun yolu nedir? AngularJS'nin çözümlerine benzer bir şey var mı, yoksa Flux uygulamasının bununla bir ilgisi yok mu (Yönlendirici bu sorumluluğu ele almalıydı)?Verileri başlatmanın doğru yolu

cevap

10

Uygulamanızın üst düzey bileşeninde, verileri getiren bir eylemi tetiklemek için comoponentWillMount yöntemini (docs) kullanın. Bileşen başlangıçta oluşturulduğunda bu yöntem çağrılır. Örneğin

:

// Create an async action, that will request data using a promise 
// Using the recently released (v0.2.2) helpers for async actions 
var actions = Reflux.createActions({ 
    init: {asyncResult: true} 
}); 
actions.init.listenAndPromise(promiseToGetData); 

// Update the store when the init action's promise is completed 
var store = Reflux.createStore({ 
    listenables: actions, 
    onInitCompleted: function (data) { 
     // do stuff 
     this.trigger(data) 
    } 
}); 

var App = React.createClass({ 
    mixins: [Reflux.connect(store)], 
    componentWillMount: function() { 
     // When this component is loaded, fetch initial data 
     actions.init() 
    } 
}); 
+0

Sadece bir soru: Ben tepki-yönlendirici ile refluxjs kullanıyorum verirsem, söz reddedildiyse olur; Montaj durduruldu mu (teknik olarak, hiçbir şey olmuyor) veya elle mi kullanılıyor? – srph

+0

Bileşen hala takılacak, eylem çağrısı ateş ve unutuyor. Söz, reddedilirse, mağaza sonucu almaya devam eder ve bir 'onInitFailed' işleyicisi ekleyebilirsiniz. Eşzamansız eylemler hakkında daha fazla bilgi için https://github.com/spoike/refluxjs#asynchronousactions sayfasına bakın. –

+0

Teşekkürler. Bu arada, '' 'onComponentWillMount''' yerine' '' componentWillMount''' için başvuruyor musunuz? – srph

-1

Reflü bu aslında bir API vardır.

docs nitelendirerek kötü, ama Spoike (reflü yazarı) bir kod örneği ile birlikte bir cevap verdi:

https://stackoverflow.com/a/28984512/1775026

+0

Bu soru, verileri eşzamansız olarak almakla ilgiliydi. Reflux, React bileşenlerinde deponun 'getInitialState' yöntemini ayarlar ve verileri eşzamansız olarak almak için kullanılmamalıdır. Bağlandığınız yanıttaki örnek statik değerler içindir. Bir örnek için resmi React [document] (https://facebook.github.io/react/tips/initial-ajax.html) adresine bakın ve http://stackoverflow.com/questions/26615307 –

İlgili konular