React Flux:对两个不同的脚本使用相同的存储

时间:2016-07-21 18:26:01

标签: javascript facebook reactjs flux reactjs-flux

我是通用架构的新手。我正在关注facebook的flux todo示例。但我想做一些小修改。我写了一个小反应脚本,它将从同一个商店获取数据,但将在不同的HTML标签上呈现。但是,当我从示例更新数据时,它不会渲染我新生成的脚本。它仍然显示旧计数。 我想问一下,我可以为不同的反应脚本使用同一个商店吗?从一个脚本在商店中进行的更新将反映在其他脚本中? 这是快照: Screen shot of front end

代码与facebook的github帐户中提供的代码完全相同。我只是在其中添加新组件。新组件的代码是:

var React = require('react');
var TodoActions = require('../actions/TodoActions');
var TodoStore = require('../stores/TodoStore');

function getTodos() {
  return {
    allTodos: TodoStore.getAll()
  };
}

var SampleSection = React.createClass({

    getInitialState: function() {
        return getTodos();
    },

    componentDidMount: function() {
        TodoStore.addChangeListener(this._onChanged);
    },

    componentWillUnmount: function() {
        TodoStore.removeChangeListener(this._onChanged);
    },

    render: function() {
        var total = Object.keys(this.state.allTodos).length;

        return (
            <div>
                <h1>This is sample count: {total}</h1>
            </div>
        );
    },

    _onChanged: function() {
        this.setState(getTodos());
    }
});

module.exports = SampleSection;

所以每当我在todo中添加新任务时,我都想更新样本计数。 有什么建议吗?谢谢。

0 个答案:

没有答案