文档开发者中心
我的
|

HarmonyOS 5

关于Grid数据刷新问题

开发中遇到个问题大致是 
我有一个页面中 通过 post请求去获取数据 拿到一个数组去渲染一个Grid  
接下来选中一个GridItem进行删除
我删除后执行的操作是 把数组清空掉 然后重新接口请求

cke_6302.png

cke_4313.png

cke_6962.png

现在问题是 数据是减少了 也更新了 但是感觉下标出现了问题  还是旧的下标 

很迷茫不知道如何入手改

比如总共有5个数据 把当前第一个删掉后

重新请求数据后 重新渲染 现在再点击第一个 下标不是0 是1  就是历史下标还在  

点赞
收藏
回复
1
分享
举报
浏览201 编辑于2024-11-07 10:38广东
全部评论
最多点赞
最新发布
最早发布

楼主您好!按您的描述,我写了段demo,未出现您说的index更新问题,您参考看看这个demo跟您的场景是否符合,如果符合的话可以排查下代码

收起
自动换行
深色代码主题
复制
import { promptAction } from '@kit.ArkUI'
@Entry
@Component
struct GridExample {
  @State numbers: string[] = []
  scroller: Scroller = new Scroller()
  aboutToAppear() {
    this.getData(0, 10);
  }
  getData(start: number, end: number) {
    for (let i = start;i <= end; i++) {
      this.numbers.push(i + '')
    }
  }
  build() {
    Column({ space: 5 }) {
      Grid(this.scroller) {
        ForEach(this.numbers, (day: string,index:number) => {
          GridItem() {
            Text(day)
              .fontSize(16)
              .backgroundColor(0xF9CF93)
              .width(80)
              .height(80)
              .textAlign(TextAlign.Center)
          }.onClick(() => {
            promptAction.showToast({message: '这是第' + index + '个'});
            this.numbers.splice(0, this.numbers.length);
            this.getData(10, 20);
          })
        })
      }
      .columnsTemplate('1fr')
      .columnsGap(10)
      .rowsGap(10)
      .width('90%')
      .height('80%')
      .backgroundColor(0xFAEEE0)
    }.width('100%').margin({ top: 5 })
  }
}
展开全部
1楼回复于2024-11-09 02:00 来自广东
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要提问题

了解社区公约,与您携手共创和谐专业的开发者社区。