父组件向子组件传值遇到的问题

Posted qinyuanchun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了父组件向子组件传值遇到的问题相关的知识,希望对你有一定的参考价值。

今天还遇到了这么一个问题,父组件向子组件传动态值,然后子组件接收之后赋值给data,然而,当父组件的值变化时,子组件中data 的值说什么也不变。

原因: 子组件赋值给data 值时,就不会改变,要想解决这个问题,用watch 来进行监听。

展示问题:技术图片

 

 解决的方法: 就是再watch 中监听props 传过来的值,然后再给data 里面的值赋值一遍(这个博主的详细的解释了监听不同类型的props 值 : https://blog.csdn.net/weixin_38098192/article/details/80447867

 

props: {
    send: {
      default: 0,
      type: Number
    }
  },

data(){
  number:this,send  
},
watch: {
    send: function(newVal) {
      console.log(newVal);
      this.number = newVal; //一定要写!!!
    }
  },

  这个方法同样可以解决父组件传递的异步数据,当数据还没加载完成,就已经完成了和子组件的传值,所以,加上watch 可以监听到值的变化。

  当异步数据传递时还有一个解决方法:父组件中的数据先做非空判断,如果是空就不初始化子组件,等父组件拿到异步数据再初始化子组件

<nav-footer :send="num" v-if="num.length>0"></nav-footer>  //先判断数据是否存在

  

以上是关于父组件向子组件传值遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

React教程:父子组件传值(组件通信)

vue父组件向子组件传值

vue父组件向子组件传值

父子组件传值遇到的问题

Vue_(组件通讯)父组件向子组件传值

c#子窗体怎么向父窗体传值?