两分与月 2021-10-18 17:21 采纳率: 100%
浏览 62
已结题

vue 组件重新渲染出现问题

<template>
  <div class="main">
    <div v-for="i in row"
         :key="i">
      <div
          v-for="j in rol"
          :key="j"
          class="box"
          :style="Calculated()"
      ></div>
    </div>

  </div>
</template>
<script>
export default {
  name: "Ledtable",
  props: {
    rows: {
      default() {
        return 0
      },

    },
    rols: {
      default() {
        return 0;
      },

    }

  },
  data: function () {
    return {
      // 假设五行四列
      row: this.rows,
      rol: this.rols,
    }
  },
  methods: {
    Calculated() {
      let height = 600 / this.rol
      let width = 600 / this.row
      return "height: " + height + "px;width: " + width + "px;"
    },


  },
  created() {

  },
  mounted() {


  },
  watch: {
    rows(n) {
      this.row = n

    },
    rols(n) {
      this.rol = n

    }
  }
}
</script>

<style lang='less' scoped>
* {
  box-sizing: border-box;
}


.main {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  width: 600px;
  height: 600px;
}

.box {
  border-right: 1px solid orange;
  border-bottom: 1px solid orange;
}
</style>

我写了个组件,组件第一次渲染的时候正常,第二次渲染的时候渲染异常,怎么修改能让组件多次渲染不报错
第一次渲染

img

第二次修改行列后就只能渲染一格

img


浏览器控制台也没有报错

img

  • 写回答

4条回答 默认 最新

  • 辉煌仪奇 2021-10-19 11:23
    关注

    没有报错,查看一下传入数据是否正确,查看一下数据类型,字符串在js中也是可以便利的
    修改监听数据确认数据传入正确

    watch: {
        rows(n) {
          this.row = Number(n)
     
        },
        rols(n) {
          this.rol = Number(n)
     
        }
    

    有帮助请点击右上角的采纳,有问题继续交流,你的采纳是对我回答的最大的肯定和动力

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月19日
  • 已采纳回答 10月19日
  • 修改了问题 10月18日
  • 创建了问题 10月18日

悬赏问题

  • ¥15 配置FPT报错,该如何处理
  • ¥15 请大家看一下这个代码咋写,一点思路都没有,最好能做一下,不要伪代码,有偿
  • ¥15 有偿请人帮写个安卓系统下禁止装软件及禁止拷入文件的程序
  • ¥100 用 H.265 对音视频硬编码 (CUDA)
  • ¥20 mpich安装完成后出问题
  • ¥15 stm32循迹小车代码问题
  • ¥15 输入一堆单词,使其去重输出
  • ¥15 qc代码,修改和添加东西
  • ¥50 Unity的粒子系统使用shadergraph(内置管线)制作的一个顶点偏移shader,但是粒子模型移动时,顶点也会偏移
  • ¥15 如何用python处理excel的数据(极值标准化)