如果 vue 仍然报错,vue 中 props 中的默认值有什么用?
What is the purpose of the default value in props in vue if vue still throws an error?
我正在尝试了解 prop 验证是针对开发人员还是针对用户。我故意将一个组件留空
我没有传值(对了,这个传值叫什么?):<card />
正确方法:<card :name="name" />
props:{
name: { default: "John Doe" }
但是,当我将组件留空且未传递值时,Vue 使用默认值填充模板部分中的值,同时在控制台中留下错误:
Property or method "name" is not defined on the instance but referenced during render.
如果我想要一个默认值怎么办?我将继续收到该错误。
Prop 验证对开发人员和用户都有用,但可选。
我认为问题在于这一行(我将输入重构为 'myName' 来解释):
<card :name="myName" />
出现错误是因为 myName
在传递给组件之前没有正确定义。
这些将用作静态示例:
<card name="Jesse" />
因为名称未绑定 :
或 v-bind:
<card :name="'Jesse'" />
因为这里绑定了 name,但是是一个文字字符串 'Jesse'
<card :name="myName" />
会起作用,你只需要断言 myName 不是未定义的。
如果你愿意,myName
本身也可以是父组件中的一个 prop,例如:
props: { myName: { default: "Jesse"} }
我正在尝试了解 prop 验证是针对开发人员还是针对用户。我故意将一个组件留空
我没有传值(对了,这个传值叫什么?):<card />
正确方法:<card :name="name" />
props:{
name: { default: "John Doe" }
但是,当我将组件留空且未传递值时,Vue 使用默认值填充模板部分中的值,同时在控制台中留下错误:
Property or method "name" is not defined on the instance but referenced during render.
如果我想要一个默认值怎么办?我将继续收到该错误。
Prop 验证对开发人员和用户都有用,但可选。
我认为问题在于这一行(我将输入重构为 'myName' 来解释):
<card :name="myName" />
出现错误是因为 myName
在传递给组件之前没有正确定义。
这些将用作静态示例:
<card name="Jesse" />
因为名称未绑定:
或v-bind:
<card :name="'Jesse'" />
因为这里绑定了 name,但是是一个文字字符串 'Jesse'
<card :name="myName" />
会起作用,你只需要断言 myName 不是未定义的。
myName
本身也可以是父组件中的一个 prop,例如:
props: { myName: { default: "Jesse"} }