账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue子组件的数据变了为什么视图没有更新?
    29
    0

    每次点击时alert都能看到this.info.status[index]在变化 但是视图没有变化 这是为什么?搞了一下午了也不知道哪里出了问题了 我另一个项目也是这么写的 就没问题 不知道这个为什么这样

    vuex的state数据

    all: [
        {
          info: {num: [555, 666], status: [false, false]}
        },
        {
          info: {num: [555, 666], status: [false, false]}
        }
      ]

    父组件

    <div v-for="(item, index) in all" :key=index>
        <div class="info">
          <Info :info="item.info" :key="index"></Info>
        </div>
    </div>
    computed: {
        ...mapState({
          all: state => state.all
        })
    }

    子组件

    <template>
     <div>
      <div v-for="(item, index) in tags" :key=index>
        <svg class="icon" aria-hidden="true" @click=change(index)>
          <use v-bind:xlink:href="info.status[index] ? item.tag2 : item.tag"></use>
        </svg>
      </div>
     </div>
    </template>
    
    <script>
    export default {
      name: 'Info',
      props: ['info'],
      data () {
        return {
          tags: [
            {id: 1, tag: '#icon-kan1', tag2: '#icon-kan2'},
            {id: 2, tag: '#icon-xiao2', tag2: '#icon-xiao2'}
          ]
        }
      },
      methods: {
        change (index) {
          alert(this.info.status[index])
          this.info.status[index] = !this.info.status[index]
        }
      }
    }
    </script>
    
    <style scoped>
    </style>
    
    1
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部