我正在尝试使用inertial .js更新Vue.js中的属性list
:
props: {
list: {
type: Object,
default: {}
}
},
updateTable(filters) {
axios.post(route('updateList'), filters)
.then(r => {
this.list = r.data
})
}
但我得到以下错误:TypeError: 'set' on proxy: trap returned falsish for property
在inertial .js中,所有的props都是作为代理提供的。如本文所述,代理的set
方法需要返回true才能允许分配。然而,我不知道如何正确地实现这一点,因为我没有自己创建代理。有什么建议吗?
还是我总是被迫使用部分重载?
我相信这里对Vue本身和惯性的工作方式存在一些误解。
你正在接收list
作为道具。不应该直接修改Props
如果你绝对需要改变它,你可以通过this.$page.props.list
直接引用它,而不是接收列表作为道具。
或者,你可以这样做:
export default {
props: {
list: {
type: Object,
default: {}
}
},
data () {
return {
listCopy: this.list
}
},
mounted () {
// Handle your scroll events
axios.get(this.listCopy.next_page_url).then(response => {
this.listCopy = {
...response.data,
data: [...this.listCopy.data, ...response.data.data]
}
})
}
}