Vuejs警告预期布尔值发现字符串

时间:2019-05-09 13:28:50

标签: vuejs2

我是Vuejs的新手,我只是在Nuxtjs上安装vue-flip插件并编写以下标签: 这是index.vue上的标签:

<vue-flip active-hover="TRUE" class="flip">

在控制台上,我看到此警告:

[Vue warn]: Invalid prop: type check failed for prop "activeHover". Expected Boolean, got String with value "TRUE"

我尝试从true更改为1,但保持状态仍然存在

消息指向此位置 在:

---> <Flip> at src/Flip.vue
       <Pages/index.vue> at pages/index.vue
         <Nuxt>
           <Layouts/default.vue> at layouts/default.vue
             <Root>

我如何摆脱此消息?

2 个答案:

答案 0 :(得分:1)

代替

<vue-flip active-hover="TRUE" class="flip">

您应该使用

<vue-flip v-bind:active-hover="true" class="flip">

或更短

<vue-flip :active-hover="true" class="flip">

答案 1 :(得分:0)

我有一个非常相似的问题;我正在将一个布尔道具从 vuex 商店传递给一个子组件。我的问题是我的 getter 实际上是一个字符串 & 在我的组件中我验证它是一个布尔值。

错误:

<块引用>

[Vue 警告]:无效的道具:道具“userIsAuthenticated”的类型检查失败。预期的布尔值,得到值为“true”的字符串

这是我解决问题的方法。

// ParentComponent.vue 

...

computed: {
    userIsAuthenticated() {
        return this.$store.getters["user/authenticated"];  // String
        return this.$store.getters["user/authenticated"] === "true";  // Boolean
    },
}
// ChildComponent.vue

...

props: {
    userIsAuthenticated: {
      type: Boolean,
      required: true,
      default: () => false,
    },
}

为了进一步扩展,在我的 vuex 商店中,我也可以这样做:

export const state = {
    authenticated: (localStorage.getItem("authenticated")) ?localStorage.getItem("authenticated") === "true" : false,
}