如何在 React 回流中将我的商店设为私有

How do I make my store private in React reflux

如何强制执行我的商店功能和私有模型。如果我的店铺是

var employeeActions = Reflux.createActions(['addEmployee']);

var empStore = Reflux.createstore({
listenables: [employeeActions],
model: {
          Total:0,
          employees:[]
}
onAddEmployee: function(employee){
   this.model.employees.push(employee);
}
});

尽管 flux 显示 Actions->Store。当前的对象结构不会阻止团队中的开发人员调用 empStore.OnAddEmployee ?

你的商店应该在一个模块中,假设你正在使用 browserify 或 webpack 或类似的东西并且你 require 你的模块。因此,您在模块中声明但未包含在发送到 Reflux.createStore() 的对象中的任何变量/对象/函数都是私有的。

所以像这样:

var employeeActions = Reflux.createActions(['addEmployee']);

var model: {
          Total:0,
          employees:[]
}

var empStore = Reflux.createstore({
listenables: [employeeActions],

onAddEmployee: function(employee){
   model.employees.push(employee);
}
});

我建议在对象上保留 onAddEmployee 函数,如果您使用 listenables mixin,则依靠回流来连接所有内容。否则,只需按照 github 上的示例:https://github.com/reflux/refluxjs#creating-data-stores 并使用相同的原则,将函数保持私有,在传递给工厂方法的对象之外。