Backbone.js 为什么React组件不知道主干集合的更改?

Backbone.js 为什么React组件不知道主干集合的更改?,backbone.js,reactjs,Backbone.js,Reactjs,我正在学习使用脊梁骨和作出反应。我使用react作为MV*中的V和模型的主干。 但有一个问题:我将主干集合传递给react组件,当我向该集合添加更多模型时,react没有更新。 如果我监听集合更改事件并调用react方法:forceUpdate,react将反映更改。 所以我猜react没有意识到集合对象中发生的更改。 如何使react自动更新主干?react没有任何本机方式来侦听任何类型的主干事件。它完全不知道您的主干代码。解决这个问题完全取决于您想要如何构建解决方案 1) 您只需在组件初始化

我正在学习使用脊梁骨和作出反应。我使用react作为MV*中的V和模型的主干。 但有一个问题:我将主干集合传递给react组件,当我向该集合添加更多模型时,react没有更新。 如果我监听集合更改事件并调用react方法:forceUpdate,react将反映更改。 所以我猜react没有意识到集合对象中发生的更改。
如何使react自动更新主干?

react没有任何本机方式来侦听任何类型的主干事件。它完全不知道您的主干代码。解决这个问题完全取决于您想要如何构建解决方案

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,将模型或集合属性复制到React组件的状态,并在模型/集合更改时调用setState:


3) 您可以使用现有的Mixin,如React.Backbone:

React没有任何本地方式来侦听任何类型的主干事件。它完全不知道您的主干代码。解决这个问题完全取决于您想要如何构建解决方案

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,将模型或集合属性复制到React组件的状态,并在模型/集合更改时调用setState:

3) 您可以使用现有的Mixin,如React.Backbone: