2014-04-22 38 views
0

我正在學習使用骨幹並作出反應。我正在使用MV作爲MV中的V和Model的骨幹。 但存在一個問題:當我向該集合添加更多模型時,我將骨幹集合傳遞給反應組件,反應沒有更新。 如果我收聽更改事件並調用反應方法:forceUpdate,反應將反映更改。 所以我猜測反應並不知道收集對象中發生的變化。 如何使骨幹反應自動更新?爲什麼React組件不知道主幹集合的變化?

回答

4

React沒有任何本地方式來聽任何類型的Backbone事件。它完全不瞭解你的Backbone代碼。解決這個問題完全取決於你想如何構建你的解決方案。

1)你可以簡單地手動在組件初始化線了骨幹活動,以您的組件的forceUpate():

React.createClass(
{ 
    componentWillMount: function() 
    { 
     // For models: 
     this.props.model.on("change", this.forceUpdate); 

     // For collections: 
     this.props.collection.on("change", this.forceUpdate); 
     this.props.collection.on("add", this.forceUpdate); 
     this.props.collection.on("remove", this.forceUpdate); 
     this.props.collection.on("reset", this.forceUpdate); 
    } 
}); 

2)你可以寫一個mixin那份型號或類別的屬性分爲陣營組件的狀態,並調用setState on Model/Collection更改:

3)您可以使用像React.Backbone一樣的現有Mixin:https://github.com/usepropeller/react.backbone