dataV—— 数据赋值成功,但是状态更新失败

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>

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

你可能感兴趣的:(前端,vue.js)