当前位置:   article > 正文

dataV—— 数据赋值成功,但是状态更新失败_dv-water-level-pond

dv-water-level-pond

dataV中数据赋值成功,但是页面数据未更新


适看人群: 粗心的新人
项目开发工具: Vue脚手架

踩坑之 dataV

问题: 刚开始的时候,是拿到后端数值就直接赋值了,结果通过后台打印发现 赋值成功了,但是页面却一直没有显示新的数据。

解决: 后面发现dataV文档中,有个用前必看 里面的状态跟新说明了这一问题,原来 dataV里面的组件props均未设置deep监听,刷新props时,要直接生成新的props对象(基础数据类型除外),或完成赋值操作后使用ES6拓展运算符生成新的props对象(this.someProps = { …this.someProps }

以下是我的项目示例(水位图):

<template>
  <div class="water">
      <dv-water-level-pond :config="config"
                           style="width:50%;height:100%" />
  </div>
</template>

<script>
export default {
  data () {
    return {
      config: {
        data: [55, 30],
        shape: 'roundRect'
      }
    }
  },
  mounted () {
    this.getWaterNum()
  },
  methods: {
    async getWaterNum () {
       console.log(this.config.data)
      /**拿取后台数据*/
      const { data: res } = await this.$http.get('/waternum')
      if (res.status == 200) {
        const { config } = this
        this.config.data = res.data
        /**
       * 使用ES6拓展运算符生成新的props对象
       * 组件侦知数据变化 自动刷新状态
       */
        this.config = { ...this.config }
        console.log(this.config.data)
      } else return
    }
  }
}
</script>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

我是个刚毕业的弱弱的。。。(你懂的),也是第一次写博客,如果有用语不妥等问题的话,很欢迎大家指出,一起进步哦~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/294669
推荐阅读
  

闽ICP备14008679号