naive ui 表格renderExpand中调用接口时无限重复调用的问题?

第一次接触naive ui, 使用table 中的 renderExpand 属性时,在属性中调用接口请求数据,如果数据定义为响应式,那么接口会无限重复请求,如果不定义为响应式,只会调用一次,但是无法渲染拿到的数据,我该怎么修改呢?

{

type: 'expand',

renderExpand: rowData => {

const columns = [

...

]

const tableData = ref([])

// 自动重复调用接口

getTableData().then(

// 赋值

tableData = ...

)

return h(

NDatatable,

{

columns,

data: tableData.value // 重复渲染导致重复调用

},

null

)

}

}


回答:

{

type: 'expand',

renderExpand: rowData => {

const tableData = ref([])

// 用 watchEffect

watchEffect(() => {

if (shouldCallApi(rowData)) {

// 更新 tableData

getTableData(rowData).then(data => {

tableData.value = data

})

} else {

// 用缓存数据

tableData.value = getCachedResult(rowData)

}

})

const columns = [

// ...

]

return h(

NDatatable,

{

columns,

data: tableData.value

},

null

)

}

}

以上是 naive ui 表格renderExpand中调用接口时无限重复调用的问题? 的全部内容, 来源链接: utcz.com/p/934758.html

回到顶部