当前位置: 首页 > 知识库问答 >
问题:

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

岳锦
2023-08-11

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

{    type: 'expand',    renderExpand: rowData => {        const columns = [         ...        ]        const tableData = ref([])        // 自动重复调用接口        getTableData().then(          // 赋值          tableData = ...        )        return h(            NDatatable,            {                columns,                data: tableData.value // 重复渲染导致重复调用            },            null        )    }}

共有1个答案

齐建安
2023-08-11
{  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    )  }}
 类似资料:
  • 4.2 接口调用 Camel管理端定义了两个版本的接口。第一版接口路径以"/api/"开头,第二版接口路径以"/api/v2"开头。 两个版本接口的主要区别在于:第二版本接口将更改配置、发布配置文件这两部操作聚合成为一个原子操作。则调用第二版本接口,如果成功,则Nginx当前配置为更改之后的配置;如果失败,则Nginx当前配置为调用接口之前的配置。不会出现不安全的中间状态。 第一版本接口: 更新节

  • 一般在开始使用tendermint之前, 作为开发者应该最关心的就是abci接口了, 因为这个是和tendermint进行交互的关键。 个人觉得这个也是tendermint的优势之一。 有了这个接口定义才有了实现通用区块链平台的可能。 所以说如果作为一个开发者, 不想了解整个tendermint的流转流程, 只想实现自己特定功能的区块链, 那么这一篇文章至少是应该看得。 我会从客户端创建开始说起,

  • 我想等submit_order_info 这个接口调用后,再执行that.get_check_submit_order() 这个接口的调用, 请问如何去修改?

  • 我是kotlin的新手,我总是编写java。我尝试了kotlin以java方式编写的一些函数代码,但不起作用。 我将这些代码翻译成java,它就可以工作了。 即使FInter是java接口。它也不起作用。 使现代化 我尝试了一些不同的方法,现在它们都是工作。

  • 我正在使用图表加载图表。在页面启动时使用硬编码数据的js。接下来,单击一个按钮,我进行一个ajax查询;从数据库获取外部数据,并希望将该数据加载到图表中。 我已检索到正确的数据并将其存储为数组。我想清除当前图表数据,并将此新数组作为图表的新数据输入。 首先,我需要清空旧数据,并尝试、清除()和销毁(),但它们都不起作用。图表只是不断地用旧数据重新加载。旧图表似乎被删除了一瞬间,却又出现了。我该如何