VUE3.0 子向父传参,但是数据表格不更新,这个还要其它动作吗?

VUE3.0 子向父传参,但是数据表格不更新,这个还要其它动作吗?

问题描述:

setup (props) {
    const data = reactive({
      searchResult: []
    })
//  这是父组件中的 触发函数,(点击子组件的button 触发)
    function receiveData (data) { // data是子组件传过来参数 
      data.searchResult = data
      page.loading = false
      console.log('##########父组件', data.searchResult) //  这里 有正常的数据
    }
}

但问题来了, 在表格中,这个数据出不来,一头雾水

<el-table
       ref='table'
      :data="searchResult"
      border
      stripe
      v-loading="loading"
      element-loading-text="读取中...">
        <el-table-column label="编 号"  prop="id"/>
        <el-table-column label="创建日期" prop="create_time"/>
</el-table>

函数形参data与外部data重名了

数据没返回不能用的,要return,另外receiveData也没被调用呀,另外把函数里边的参数改一改名字data1,免得跟reactive里边的一样。

import "onMounted,toRefs,reactive" from Vue;
setup (props) {

    const data = reactive({

      searchResult: []

    })

//  这是父组件中的 触发函数,(点击子组件的button 触发)

    function receiveData (data1) { // data1是子组件传过来参数 ,你这个data1是从哪儿来的

      data.searchResult = data1

      page.loading = false

      console.log('##########父组件', data.searchResult) //  这里 有正常的数据

    }
onMounted(()=>{
 //在这里应该调用receiveData
receiveData(data1); //你这个data1参数是从哪儿拿的,没看到在代码里定义。
});

//要加这个
return {...toRefs(data),receiveData}

}