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