原因
子组件初始化过慢导致父组件在执行子组件的方法时还没有初始化完成
代码
子组件
created() {
// 在组件初始化的时候执行,只执行一次
if( !this.tableData){
this.init(this.tableName,this.tableId);
}
console.log(this.$data);
console.log(this.tableData);
},
onReady() {
console.log( this.$refs.xiangqing.getTableData().xuanjianluxian );
console.log( this.$refs.xiangqing.getTableValue('xuanjianluxian') );
// this.getData();
},
解决
async onReady() {
// 先手动执行初始化,注意加await等待里面的http请求结束后再继续执行
await this.$refs.xiangqing.init( this.tableName , this.tableId);
// 之后就可以获得值了。
console.log( this.$refs.xiangqing.getTableData().xuanjianluxian );
console.log( this.$refs.xiangqing.getTableValue('xuanjianluxian') );
// this.getData();
},