在使用vue时避免不了子组件要调用父组件中定义的方法,vue官网给出了API说明,this.$parent可以调用父组件自定义的方法。
但是在使用UI组件时出现一个无法使用this.$parent直接调用父组件方法的问题。
<Tabs value="name1">
<TabPane label="输入productID绑定" name="name1">
<TextTag @setText="setTagList"/>
</TabPane>
</Tabs>
上面代码中使用了iview组件,TextTag自己写的组件,在TextTag组件中直接使用this.$parent调用它父级组件的方法会报错,会提示你方法未定义。
错误的原因是因为你自己写的组件被包裹在iview组件中,所以你直接在TextTag组件中调用它父级方法是调用不到的,TextTag直接父级组件时iview中的Tabs,如果在这种情况下还想要调用父组件中的方法,可以使用:
this.$emit()