描述一下遇见的问题:
- @Input用来从父组件给子组件传值,如果传的值是基本数据类型,并且这个值将来要用到子组件等输入类型的元素上,进行双向数据绑定,在页面上更改值,刷新接口,这个时候子组件的值还是自己输入的值。
//子组件
我是父组件传过来的基本数据类型:{{age}}
我是父组件传过来的对象中的基本类型:{{name}}
//父组件
/** 传给子组件的是一个基本数据类型 */
age=18;
/** 传给子组件的是一个对象中的某一个值 */
person ={name:21};
changeVal(){
this.age++;
this.person.name = 21;
}
首次加载,我们页面会显示:21,这个时候更改页面的值,再点击按钮,值不会重新变为21。如果想实现这个功能,需要传递一个对象,changeVal里面改变对象的值,在angular6版本中,改变对象的属性值,并不会引起子组件中值的改变,但是angular12经过测试,在父组件中修改属性的值,子组件中会随之更改。
- 关于Input结合set和get使用,有一些场景,比如我们需要对传入子组件的值拿到之后做一些逻辑处理,可以搭配set和get一起用,大致套路如下:
private _age = '';
@Input() set age(str){
//一些逻辑处理吧啦吧啦...
this._age = str;
}
get age(){
return this._age;
}
【信息由网络或者个人提供,如有涉及版权请联系COOY资源网邮箱处理】
© 版权声明
本平台(www.cooy.cn)的一切软件、教程及内容信息仅限用于学习和研究,付费仅为收集整理归类费用;
不得将上述内容用于商业或者非法用途,否则一切后果用户自行承担负责。本平台资源、内容、信息均来自来自用户上传,版权争议及其他问题与本平台无关。
您必须在下载后的24个小时之内从您的电脑或手机中彻底删除上述下载内容,如果您喜欢该程序或内容,请支持正版以获取更好的服务。我们非常重视版权问题,如有侵权请发送邮件至下方邮件(655465@qq.com),敬请谅解!
如发现违法违规内容,请联系下方邮箱举报,我们收到后将会第一时间处理。
THE END
暂无评论内容