bil*_*cyz 3 javascript vue.js vuejs2
我正在尝试使用$set函数修改存储在vuejs中的数据.但我得到了这个错误:TypeError: app.messageBox.$set is not a function.
这是关于我如何定义app和messageBox的代码:
app = new Vue({
el: '#app',
data: {
messageBox: [{
id: 1,
message: 'first'
}, {
id: 2,
message: 'second'
}]
}
});
Run Code Online (Sandbox Code Playgroud)
在另一个js文件中,我尝试修改messageBox中的数据:
function test() {
app.messageBox.$set(0, {message: 'aaa'});
}
Run Code Online (Sandbox Code Playgroud)
ton*_*y19 11
正确的语法是Vue.set(target, index, value):
Vue.set(app.messageBox, 0, { message: 'outside component' });
// or when you don't access to `Vue`:
app.$set(app.messageBox, 0, { message: 'outside component' });
// or when `this` is the Vue instance:
this.$set(this.messageBox, 0, { message: 'inside component' })
Run Code Online (Sandbox Code Playgroud)
const app = new Vue({
el: '#app',
data() {
return {
messageBox: [{
id: 1,
message: 'first'
}, {
id: 2,
message: 'second'
}]
};
},
mounted() {
setTimeout(() => {
this.$set(this.messageBox, 0, { message: 'inside component' })
}, 1000)
}
});
setTimeout(() => {
Vue.set(app.messageBox, 0, { message: 'outside component' });
}, 2000);Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/vue@2.6.10/dist/vue.min.js"></script>
<div id="app">
<p v-for="msgBox of messageBox">{{msgBox.message}}</p>
</div>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4763 次 |
| 最近记录: |