我是通用架构的新手。我正在关注facebook的flux todo示例。但我想做一些小修改。我写了一个小反应脚本,它将从同一个商店获取数据,但将在不同的HTML标签上呈现。但是,当我从示例更新数据时,它不会渲染我新生成的脚本。它仍然显示旧计数。 我想问一下,我可以为不同的反应脚本使用同一个商店吗?从一个脚本在商店中进行的更新将反映在其他脚本中? 这是快照:
代码与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中添加新任务时,我都想更新样本计数。 有什么建议吗?谢谢。