我不向商店添加记录 ExtJS
I dont add a records to the store ExtJS
ExtJs 6.2
var store = Ext.create("Ext.data.Store");
var dep = {dd:11};
store.add({dd:11});
store.add(dep);
store.add(dep);
store.add(dep);
store.add(dep);
store.add(dep);
store.add(dep);
store.add(dep);
store.add({dd:11});
console.log("Count:" + store.count());
计数:3
变量对象只添加一次。
为什么?????
这背后的原因是 store.add
不是纯函数,这意味着它改变了 dep
所以在第一次添加 dep
之后不再持有对简单 javascript 对象的引用但它是对添加模型的引用。之后,您尝试添加已在商店中的模型,因此它忽略了它
您可以通过在首次添加
后对 def
变量执行 console.log
来验证这一点
解决方法:
store.add(Ext.clone(dep));
ExtJs 6.2
var store = Ext.create("Ext.data.Store");
var dep = {dd:11};
store.add({dd:11});
store.add(dep);
store.add(dep);
store.add(dep);
store.add(dep);
store.add(dep);
store.add(dep);
store.add(dep);
store.add({dd:11});
console.log("Count:" + store.count());
计数:3
变量对象只添加一次。 为什么?????
这背后的原因是 store.add
不是纯函数,这意味着它改变了 dep
所以在第一次添加 dep
之后不再持有对简单 javascript 对象的引用但它是对添加模型的引用。之后,您尝试添加已在商店中的模型,因此它忽略了它
您可以通过在首次添加
后对def
变量执行 console.log
来验证这一点
解决方法:
store.add(Ext.clone(dep));