Vue 列表项不会在状态更改时重新呈现

阿尔卡杜尔

我有一些对象数组,当用户单击按钮时,我获取新数组并显示一些结果。

它工作正常,直到我获取第二个数组。当我用一个元素获取第一个数组,然后用两个元素获取数组时,它只会更改(添加或删除)第二个元素。

我如何更改数组值:

fetchAsync(result){
  this.issue = result.body;
}

issues得怎么样?

const issues = [
  {
    "id":100,
    "key":"DEMO-123",
    "summary":"Demo issue description",
    "devices":[
      {
        "id":100,
        "name":"iPhone6S",
        "browsers":[
          {
            "id":100,
            "name":"Safari",
            "displayVariants":[
              {
                "id":100,
                "issueKey":"DEMO-123",
                "state":1,
                "browserName":"safari",
                "user":"user-1",
                "landScope":false
              }
            ]
          }
        ]
      }
    ]
  }
]

并且更改的值是 issues[].devices[].browsers[].displayVariants[].state

出现嵌套更改时如何强制 Vue 重新渲染此组件?


[ 编辑 ]

我呈现这样的问题:

  <tr v-for="issue in issues">
    <td>
      <div>{{ issue.key }}</div>
      <div class="issue-description">[ {{ issue.summary }} ]</div>
    </td>
    <template v-for="d in issue.devices">
      <td v-for="browser in d.browsers">
        <!--{{ d }}-->
          <device v-for="variant in browser.displayVariants"
                  :variant="variant"
                  :browserId="browser.id"
                  :issueKey="issue.key"
                  :issueId="issue.id"
                  :deviceId="d.id"></device>
      </td>
    </template>
  </tr>

device模板

<template>
  <svg viewBox="0 0 30 30" class="mobileSVG" @click="changeState" :class="[state, {landscape: variant.landScope}]">
    <use xlink:href="#mobile"/>
  </svg>
</template>
阿克斯

我认为将键添加到您的列表中可以解决问题:

https://vuejs.org/v2/guide/list.html#key

Vue 尝试对 DOM 进行最小的更改,并认为第一项没有更改,因此不会重新渲染。在您的情况下,您已经拥有id,使用它作为密钥应该可以解决问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

React组件不会在状态更改时重新呈现

来自分类Dev

反应不会在状态更改时重新呈现

来自分类Dev

组件不会在状态更改时重新呈现

来自分类Dev

React不会在状态更改时重新呈现

来自分类Dev

文件状态更改时Vue.js不重新呈现

来自分类Dev

React-redux组件不会在商店状态更改时重新呈现

来自分类Dev

React + Redux:组件不会在状态更改时重新呈现

来自分类Dev

同级组件不会在状态更改时重新呈现(使用useEffect,useState和Context)

来自分类Dev

Cookie值更改时Vue重新呈现

来自分类Dev

在vuex中状态更改后,vue组件的视图不会重新呈现吗?

来自分类Dev

Reactjs:为什么子组件不会在数据更改时重新呈现?

来自分类Dev

Reactjs:为什么子组件不会在数据更改时重新呈现?

来自分类Dev

当可观察数组更改时,ListItem 不会在 FlatList 中重新呈现

来自分类Dev

导航栏不会在路由器位置更改时重新呈现

来自分类Dev

Vue.js列表在推送和更改项目时不会重新呈现

来自分类Dev

反应组件不会在父组件 firebase 的状态更改时重新渲染

来自分类Dev

Vue 不会在我的组件的 mustache 模板 ( {{}} ) 中呈现内容

来自分类Dev

为什么使用 new Vue.extend() 创建的子项不会在父项中呈现

来自分类Dev

jqgrid加载页面加载。但不会在选择列表更改时重新加载

来自分类Dev

React JS组件不会在状态更改时更新

来自分类Dev

React不会在道具更改时重新渲染

来自分类Dev

为什么vue v-for在数据更改时不重新呈现子组件?

来自分类Dev

Laravel:对vue js组件的更改不会在生产中显示

来自分类Dev

列表 jsx 未在状态更改时重新呈现

来自分类Dev

Webpack不会在更改时重建

来自分类Dev

Vue - 状态变化不会重新渲染模板?

来自分类Dev

自动重新加载扩展程序不会在更改时重新加载

来自分类Dev

React.js不会在状态更新时重新呈现应用程序

来自分类Dev

UI-Router-范围不会在状态更改时被破坏?

Related 相关文章

  1. 1

    React组件不会在状态更改时重新呈现

  2. 2

    反应不会在状态更改时重新呈现

  3. 3

    组件不会在状态更改时重新呈现

  4. 4

    React不会在状态更改时重新呈现

  5. 5

    文件状态更改时Vue.js不重新呈现

  6. 6

    React-redux组件不会在商店状态更改时重新呈现

  7. 7

    React + Redux:组件不会在状态更改时重新呈现

  8. 8

    同级组件不会在状态更改时重新呈现(使用useEffect,useState和Context)

  9. 9

    Cookie值更改时Vue重新呈现

  10. 10

    在vuex中状态更改后,vue组件的视图不会重新呈现吗?

  11. 11

    Reactjs:为什么子组件不会在数据更改时重新呈现?

  12. 12

    Reactjs:为什么子组件不会在数据更改时重新呈现?

  13. 13

    当可观察数组更改时,ListItem 不会在 FlatList 中重新呈现

  14. 14

    导航栏不会在路由器位置更改时重新呈现

  15. 15

    Vue.js列表在推送和更改项目时不会重新呈现

  16. 16

    反应组件不会在父组件 firebase 的状态更改时重新渲染

  17. 17

    Vue 不会在我的组件的 mustache 模板 ( {{}} ) 中呈现内容

  18. 18

    为什么使用 new Vue.extend() 创建的子项不会在父项中呈现

  19. 19

    jqgrid加载页面加载。但不会在选择列表更改时重新加载

  20. 20

    React JS组件不会在状态更改时更新

  21. 21

    React不会在道具更改时重新渲染

  22. 22

    为什么vue v-for在数据更改时不重新呈现子组件?

  23. 23

    Laravel:对vue js组件的更改不会在生产中显示

  24. 24

    列表 jsx 未在状态更改时重新呈现

  25. 25

    Webpack不会在更改时重建

  26. 26

    Vue - 状态变化不会重新渲染模板?

  27. 27

    自动重新加载扩展程序不会在更改时重新加载

  28. 28

    React.js不会在状态更新时重新呈现应用程序

  29. 29

    UI-Router-范围不会在状态更改时被破坏?

热门标签

归档