我没有以正确的方式使用带有@emit 的道具,但我不知道如何修复它。我需要知道正确执行此操作的非全局注册方式(顺便说一下,我对 Vue 完全陌生)..
这是我在文件中的 html parent.vue
:
<deleteLayoutDialog v-if"showDeleteLayoutDialog"
:layout-name="dialogNameToDelete
@confirm="removeLayout(layout-name)"
@cancel="setShowDeleteLayoutDialog(false)"/>
这是一个定义child.vue
了deleteLayoutDialog
's prop 和 @emit 的文件:
// html
// <script>
// import { //sth } from 'files'
// @Component({ // components })
export default class DeleteLayoutDialog extends Vue {
@Prop({required: true, type: String})
public readonly layoutName: string;
@Emit()
public confirm(layoutName: string) {
// do something
}
}
</script>
这是我的 javascript(内部parent.vue
),其中columnLayoutName
似乎有一个NaN
值(在 chrome 开发工具中)
public removeLayout(columnLayoutName: string) {
if (this.columnLayout.name === columnLayoutName) {
// (this.columnLayout is defined somewhere in this code)
// do something...
}
}
我应该如何更改我的html
,removeLayout
以便我正确使用道具?谢谢你。