收藏
回答

setData修改数组,页面未重新渲染?

当我打开一个页面时,通过后端返回的数据,前端逻辑处理之后形成一个数组【genetateFormList】,在页面中调用自定义组件【formApp】并且循环这个组件,用来实现动态表单及表单之间的联动(图1),其中联动是通过【genetateFormList】数组对象中的【equation】布尔值利用指令【hidden】实现表单的联动,例如我选了周报填写,就会把对应的隐藏表单项的【equation】值修改成【false】,因为在hidden中false代表显示,true代表隐藏,整个流程就是这样,问题就在当我选了周报填写之后,equation值也在数组中修改成功,但是数据【genetateFormList】,并没有重新渲染(图4),这是为什么?是框架的bug还是我的问题?

图2:

图3:

图4:


回答关注问题邀请回答
收藏

2 个回答

  • Amberber鱼🌈
    Amberber鱼🌈
    2020-07-26

    题有点长,就不审了。

    假设你想渲染的数组名字叫“event”。在console里,event里面的值已经更新成功。那么再加一行代码

    that.setData({

    events: that.data.events

    })

    把events这个数组重新渲染一下,就可以了

    2020-07-26
    有用 2
    回复
  • 卢霄霄
    卢霄霄
    2020-07-13

    审题失败。。。来个代码片段吧。。

    2020-07-13
    有用
    回复 5
    • 清风
      清风
      2020-07-13
      代码太复杂,不好做片段,只有截图了
      2020-07-13
      回复
    • 卢霄霄
      卢霄霄
      2020-07-13回复清风
      hidden先换成 wx:if 呢,记得取反
      2020-07-13
      回复
    • 清风
      清风
      2020-07-13回复卢霄霄
      试过if,不行的
      2020-07-13
      回复
    • 卢霄霄
      卢霄霄
      2020-07-13回复清风
      js做改动的部分截图呢
      2020-07-13
      回复
    • 清风
      清风
      2020-07-13
      光看这个可能看不明白,太麻烦了  我还是想办法拆一个代码片段出来吧
      2020-07-13
      回复
登录 后发表内容
问题标签