我有一个 LokiJS 提供的存储,我用它来使用autoloadCallback
.
LokIJS 存储:
var db = new loki('mydatabase', {
autoupdate: true,
autoload: true,
autoloadCallback: setupHandler
})
Vuex 状态和突变:
const state = {
ads: []
}
const mutations = {
updateArray(from, to) {
from = to
},
updateAds() {
state.ads = db.getCollection('ads').data
}
}
和回调本身:
function setupHandler() {
setupCollection('ads') // Just sets up the collection if it doesn't exist
db.getCollection('ads').insert({dummy: "Dummmy!"})
mutations.updateArray(state.ads, db.getCollection('ads').data)
mutations.updateAds()
}
这里的问题是调用updateArray(state.ads, content)
不会改变state.ads
to content
,但是updateAds()
本质上做同样事情的函数,只是不接受参数并将它们硬编码,会state.ads
相应地改变。
我编写通用函数来更新数组的方法的根本问题是什么?有没有办法做到这一点?
这是此行为的JSFiddle MCVE 示例。