如何将API数据加载到vue3网格中

qij5mzcb  于 2023-05-07  发布在  Vue.js
关注(0)|答案(1)|浏览(158)

我正在处理一个应用程序,我需要加载数据的组件加载。我绑定ag-grid-vue的地方。我正面临一个问题,我的API响应很晚,网格给出了下面的显示。
caught(in promise)TypeError:rowData.map不是函数
下面是我在组件加载上的代码

<script>
  import { AgGridVue } from "ag-grid-vue3";
  import Repository from "../serviceFactory/serviceFactory";
  const jokeRepository = Repository.get("JokeRepo");
  
  export default{
    name: "App",
    components: {
      AgGridVue,
    },
    data() {
       var jokeList = jokeRepository.getRecordList().then(res => {return res});
       debugger
      return {
        columnDefs: [
          { headerName: "Joke", field: "joke",sortable: true}
        ],
        rowData: jokeList,
        overlayNoRowsTemplate: "No Record Found!"
      };
   }
  }
  </script>

这里jokeList返回一个PromiseStatepending。

vuktfyat

vuktfyat1#

您将jokeList(以及连续的rowData)设置为promise,而不是列表:

var jokeList = jokeRepository.getRecordList()

相反,将rowData初始化为一个空数组:

data() {
  return {
    ...
    rowData: [],
  };
}

然后将数据加载到生命周期钩子(如created)中,并从那里更新rowData

created(){
  jokeRepository.getRecordList().then(res => this.rowData = res)
}

相关问题