报错:Avoid mutating a prop directly since the value will be overwritten whenever the parent component........

原因:所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。(父组件更新,子组件中的prop值也会更新,但子组件不能修改由父组件传递过来的值)

不能直接对父组件传来的值进行双向绑定,要先子组件里定义新的变量来接收父组件传来的值,接着我们可以使用v-modal+watch属性 或者 使用:binfd="" + @input=" func"(再定义这个func通过传入的event 得到改变的值,将event.target.value赋值给新变量)

   <div id="app">
<h3>我是父组件</h3>
<templ :num-from-father="fatherData"
:num-from-father2="fatherData2"
@change1="changeFunc1"
@change2="changeFunc2"/>
</div> <template id="temp">
<div>
<h3>我是子组件</h3>
<p>props1:{{numFromFather}}</p>
<p>转存的值:{{receiveNum1}}</p>
<!-- 方法1 -->
<input type="number" :bind="receiveNum1" @input="receiveNum1Input">
<p>props2:{{numFromFather2}}</p>
<p>转存的值:{{receiveNum2}}</p>
<!-- 方法2 使用watch -->
<input type="number" v-model="receiveNum2">
</div>
</template>
<script src="/js/vue.js"></script>
<script>
const vm = new Vue({
el:'#app',
data:{
fatherData:0,
fatherData2:10
},
methods: {
changeFunc1(value){
this.fatherData = value*1;
},
changeFunc2(value){
this.fatherData2 = value*1;
}
},
components:{
templ:{
template:'#temp',
props:{
numFromFather:Number,
numFromFather2:Number,
},
data(){
return{
receiveNum1:this.numFromFather,
receiveNum2:this.numFromFather2,
}
},
methods: {
receiveNum1Input(event){
this.receiveNum1 = event.target.value;
this.$emit('change1',this.receiveNum1);
this.receiveNum2 = this.receiveNum1*100;
this.$emit('change2',this.receiveNum2);
}
},
watch: {
receiveNum2(newValue){
this.receiveNum2 = newValue;
this.$emit('change2',this.receiveNum2);
this.receiveNum1 = this.receiveNum2/100;
this.$emit('change1',this.receiveNum1);
}
},
}
}
})
</script>      

(复习)父子组件传值使用v-modal双向绑定,报错Avoid mutating a prop directly解决方案的更多相关文章

  1. Vue2.0 Props双向绑定报错简易处理办法

    在写项目的时候遇到了一个报错问题,虽然功能是正常运行,chrome的提示是:[Vue warn]: Avoid mutating a prop directly since the value wil ...

  2. vue---props进行双向数据绑定报错

    在使用vue进行组件开发的时候,遇到一个问题,父组件传递到子组件里面的值,如果在子组件里面进行改变 传递过来的"值",会报错: [Vue warn]: Avoid mutating ...

  3. 十八、React react-router4.x中:实现路由模块化、以及嵌套路由父子组件传值

    一.路由模块化(用字典定义路由,然后循环出来) 1.官方文档参考 [官方文档]https://reacttraining.com/react-router/web/guides/quick-start ...

  4. Angular 父子组件传值

    Angular 父子组件传值 @Input  @Output  @ViewChild 新建一个头部组件 newsheader 在主组件引用 news 组件,在news组件添加 newsheader 组 ...

  5. vue 非父子组件传值

    /*非父子组件传值 1.新建一个js文件 然后引入vue 实例化vue 最后暴露这个实例 2.在要广播的地方引入刚才定义的实例 3.通过 VueEmit.$emit('名称','数据') 4.在接收收 ...

  6. 使用react进行父子组件传值

    在单页面里面,父子组件传值是比较常见的,之前一直用vue开发,今天研究了一下react的父子组件传值,和vue差不多的思路,父组件向子组件传值,父通过初始state,子组件通过this.props进行 ...

  7. 【vue】父组件主动调用子组件 /// 非父子组件传值

    一  父组件主动调用子组件: 注意:在父组件使用子组件的标签上注入ref属性,例如: <div id="home"> <v-header ref="he ...

  8. vue父子组件传值加例子

    例子:http://element-cn.eleme.io/#/zh-CN/component/form         上进行改的 父传子:用prop:子组件能够改变父组件的值,是共享的,和父操作是 ...

  9. Vue中非父子组件传值的问题

    父子组件传值的问题,前面已经讲过,不再叙述,这里来说一种非父子组件的传值. vue官网指出,可以使用一个空vue实例作为事件中央线! 也就是说 非父子组件之间的通信,必须要有公共的实例(可以是空的), ...

随机推荐

  1. 【笔记】机器学习 - 李宏毅 - 6 - Logistic Regression

    Logistic Regression 逻辑回归 逻辑回归与线性回归有很多相似的地方.后面会做对比,先将逻辑回归函数可视化一下. 与其所对应的损失函数如下,并将求max转换为min,并转换为求指数形式 ...

  2. C# Socket的方式发送中文,接收方收到乱码

    场景: 使用 Socket的方式向下位机发送中文信息,下位机收到的中文是乱码 原因: 了解到的原因是上位机与下位机的发送与接收的编码与解码方式不一致 比如上位机采用 Encoding.UTF8.Get ...

  3. .net core 中如何读取 appsettings.json 相关配置

    appsettings.json如下 { "Logging": { "LogLevel": { "Default": "Debug ...

  4. jQuery笔记(六)jQuery之Ajax

    jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对 ...

  5. 【database】复制表数据到相同备份表

    目的及由来,因为数据库表都采取逻辑删除isDeleted=true/flase,但是之前有些报表或者其他的sql并没有在sql中指明此条件.为了不影响之前代码,所以: 1.数据库中创建一张相同的表,把 ...

  6. 字符串问题----去掉字符串中连续出现K个0的子串

    去掉字符串中连续出现K个0的子串 给定一个字符串str,和一个整数k, 如果str中正好有连续K 个'0'字符出现,把连续的 k 个 '0'去掉,返回处理后的子串. [解题思路] 1. 定义两个变量, ...

  7. sift代码实现详解

    1.创建高斯金字塔第-1组 1.1.将源图片转成灰度图 void ConvertToGray(const Mat& src, Mat& dst) { cv::Size size = s ...

  8. 梯度下降算法&线性回归算法

    **机器学习的过程说白了就是让我们编写一个函数使得costfunction最小,并且此时的参数值就是最佳参数值. 定义 假设存在一个代价函数 fun:\(J\left(\theta_{0}, \the ...

  9. prach 839滤波系数

  10. JFinal Enjoy指令扩展管理常用文本模板

    个人博客 地址:http://www.wenhaofan.com/article/20190304102258 平时在项目中使用短信模板 邮件模板以及 站内消息通知等文本模板一般都是通过手动的字符串拼 ...