【发布时间】:2019-09-12 08:41:51
【问题描述】:
我有一个标题组件。我无法在按钮单击时更新标题组件的值
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<header>
<my-component ref="foo"></my-component>
</header>
<div id="app">
<h1>Component Test</h1>
<button v-on:click="test">Button</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var MyComponent = Vue.extend({
template: '<div><p>Hello</p><div v-if="islogin">User</div></div>',
data: function () {
return {
islogin: false
};
}
});
var vm = new Vue({
el: '#app',
components: {
'my-component': MyComponent
},
methods: {
test: function () {
this.$refs.foo.islogin = true;
}
}
});
</script>
</body>
</html>
我想在单击按钮时将 islogin 更新为 true。现在它显示“TypeError: Cannot set property 'islogin' of undefined”错误。
谢谢
【问题讨论】:
-
你有什么理由使用 ref 吗?否则我建议改用数据绑定...
-
没有理由使用 href。 my-component 很常见,每个页面都使用它。从每个页面我想更新“islogin”值。
标签: vue.js vuejs2 vue-component