baidu / amis

前端低代码框架,通过 JSON 配置就能生成各种页面。
https://baidu.github.io/amis/
Apache License 2.0
17.35k stars 2.52k forks source link

Service请求执行完成后,根据返回数据又重新请求,无限循环 #8498

Closed ysyk2021 closed 1 year ago

ysyk2021 commented 1 year ago

描述问题:

Service API接口请求执行完成后,会根据返回数据(id)重新请求,无限循环。期望阻止这种行为。 这个Service嵌套在drawer内。

{
                  "type": "service",
                  "trackExpression": "none",
                  "api":"http://127.0.0.1:8080/job/alertConfig/${id}"
}

api返回值如下:

{
    "status": 0,
    "msg": "成功",
    "data": {
        "id": "999624",
        "enableEmail": true,
        "createTime": "2023-10-19 16:09:12",
        "updateTime": "2023-10-20 17:15:50"
    }
}

http://127.0.0.1:8080/job/alertConfig/1000010 http://127.0.0.1:8080/job/alertConfig/999624 ...

如何复现(请务必完整填写下面内容):

  1. 你是如何使用 amis 的?

html+js

  1. amis 版本是什么?请先在最新 beta 版本测试问题是否存在

这两个版本都试过,问题相同

3.4.2 3.4.3

截屏2023-10-25 16 14 45
2betop commented 1 year ago

这是 amis 的机制,如果希望关闭自动刷新,可以配置 autoRefresh: false https://aisuda.bce.baidu.com/amis/zh-CN/docs/types/api#%E8%87%AA%E5%8A%A8%E5%88%B7%E6%96%B0

ysyk2021 commented 1 year ago

你好,按照上面提示,配置了此参数,仍旧会出现无限循环。

{
                  "type": "service",
                  "autoRefresh": false,
                  "api":"http://127.0.0.1:8080/job/alertConfig/${id}",
2betop commented 1 year ago

不是 api 并列,而是 api 换成对象形式比如

{
  "type": "service",
  "api": {
    "mehtod": "get",
    "url": "http://127.0.0.1:8080/job/alertConfig/${id}",
    "autoRefresh": false
  }
}
ysyk2021 commented 1 year ago

感谢,问题已解决。