组件中的道具不起作用界面 - Nuxt 和 Vuejs
props in components does not work interface - Nuxt and Vuejs
我无法使用 props 在组件中处理对象的界面。
有谁知道我怎样才能让它发挥作用?
Portaria 接口
export interface PortariaInterface {
dataEntrada: string
nfe?: {
numero: string
}
模板
<Formulario :formulario="formulario" />
Ts
import {PortariaInterface} from '@/models/PortariaInterface'
import { Formulario } from '@/components/portaria'
export default Vue.extend({
name: 'IndexPage',
components: { Formulario },
layout: 'portaria',
data() {
return {
formulario: {} as PortariaInterface
}
}
})
组件
<el-col :xs="24" :sm="8" :md="8" :lg="6" :xl="4">
<el-form-item label="Número NFe">
<el-input v-model="formulario.nfe?.numero"></el-input>
</el-form-item>
</el-col>
export default Vue.extend({
name: 'Formulario',
props: ['formulario']
})
错误
TypeError: Cannot read properties of undefined (reading 'numero')
在这种情况下,您有两个绑定,应该使用 Formulario
组件上的 v-model
指令完成,如下所示:
<Formulario v-model="formulario" />
在此组件中使用 value
和 @input
事件绑定输入:
<el-col :xs="24" :sm="8" :md="8" :lg="6" :xl="4">
<el-form-item label="Número NFe">
<el-input :value="numero" @input="onInput"></el-input>
</el-form-item>
</el-col>
export default Vue.extend({
name: 'Formulario',
props: ['value'],
computed:{
numero(){
return this.value.nfe?.numero
}
},
methods:{
onInput(val){
this.$emit('input',val)
}
}
})
我无法使用 props 在组件中处理对象的界面。
有谁知道我怎样才能让它发挥作用?
Portaria 接口
export interface PortariaInterface {
dataEntrada: string
nfe?: {
numero: string
}
模板
<Formulario :formulario="formulario" />
Ts
import {PortariaInterface} from '@/models/PortariaInterface'
import { Formulario } from '@/components/portaria'
export default Vue.extend({
name: 'IndexPage',
components: { Formulario },
layout: 'portaria',
data() {
return {
formulario: {} as PortariaInterface
}
}
})
组件
<el-col :xs="24" :sm="8" :md="8" :lg="6" :xl="4">
<el-form-item label="Número NFe">
<el-input v-model="formulario.nfe?.numero"></el-input>
</el-form-item>
</el-col>
export default Vue.extend({
name: 'Formulario',
props: ['formulario']
})
错误
TypeError: Cannot read properties of undefined (reading 'numero')
在这种情况下,您有两个绑定,应该使用 Formulario
组件上的 v-model
指令完成,如下所示:
<Formulario v-model="formulario" />
在此组件中使用 value
和 @input
事件绑定输入:
<el-col :xs="24" :sm="8" :md="8" :lg="6" :xl="4">
<el-form-item label="Número NFe">
<el-input :value="numero" @input="onInput"></el-input>
</el-form-item>
</el-col>
export default Vue.extend({
name: 'Formulario',
props: ['value'],
computed:{
numero(){
return this.value.nfe?.numero
}
},
methods:{
onInput(val){
this.$emit('input',val)
}
}
})