[Vue 警告]:无效的道具:道具“xxx”的类型检查失败。期望值为 X 的数字,得到值为“X”的字符串

Ser*_*rge 4 javascript vue.js vuejs2

App.vue

<v-text-field v-model="daysNumber" type="number"></v-text-field>

<MyComponent :daysNumber="daysNumber"/>

  data: () => ({
    daysNumber: 5,
Run Code Online (Sandbox Code Playgroud)

MyComponent.vue

props: {
    daysNumber: { type: Number, required: true }
  },
Run Code Online (Sandbox Code Playgroud)

在我增加数字文本框中的数字 un 之前,一切都很好:(从最初的“5”到“6”):错误:

vue.runtime.esm.js?2b0e:619

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

在发现

---> <MyComponent> at src/components/MyComponent.vue
       <VContent>
         <VApp>
           <App> at src/App.vue
             <Root>
Run Code Online (Sandbox Code Playgroud)

Rad*_*iță 5

您需要将.nu​​mber修饰符添加到v-model,否则输入的类型将为字符串。

<v-text-field v-model.number="daysNumber" type="number"></v-text-field>
Run Code Online (Sandbox Code Playgroud)

  • 难道这个东西就不能从“类型”推断出来吗?重复同样的事情两次似乎很奇怪 (2认同)