【发布时间】:2020-10-16 13:41:17
【问题描述】:
我有以下代码:
<!-- App.vue -->
<template>
<button @click="login">Login</button>
</template>
<script lang="ts">
import { loggedIn } from '../state'
import { defineComponent } from 'vue'
export default defineComponent({
data() {
return {
loggedIn,
}
},
methods: {
login() {
this.loggedIn = true
}
}
})
</script>
// state.ts
import { reactive, ref } from 'vue'
export const loggedIn = ref(true)
上面的代码有一个编译错误(在 VS Code 和 vue-cli-service serve 中都有显示)
TS2322: Type 'true' is not assignable to type 'Ref<boolean>'.
> | this.loggedIn = true
我很确定我应该这样做,所以我不确定为什么会出错。我可以将代码更改为此错误消失:this.loggedIn.value = true 但我很确定这不是它应该如何工作的,我得到了这个运行时错误:
Cannot create property 'value' on boolean 'false'
为什么在我的原始代码中出现此编译错误?
【问题讨论】:
-
试试
loggedIn = ref<boolean>(true) -
希望对您有所帮助并感谢您的支持
标签: vue.js visual-studio-code vuejs3