uni-app小程序父组件数据更新,实现自定义组件刷新视图

这篇具有很好参考价值的文章主要介绍了uni-app小程序父组件数据更新,实现自定义组件刷新视图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

情景介绍

业务需求得做一个刷题单选框的组件,选中错误自动显示正确的。思路父组件监听题目的变化更新选项list,子组件深度监听proprs数据,变化的时候及时更新视图。但是发现一个问题,判断题的选项是一样的导致我渲染第一个题的时候无法操作下一题的选项,组件没有更新视图。

解决办法:将子组件深度监听里的逻辑封装成方法,由父组件每次更新数据的时候强心渲染子组件,解决选项list一样的时候深度监听不调用方法。

父组件

<selectOptions ref="options"  @ok="change"></selectOptions>

监听数据逻辑

this.$refs.options.updateOptions(this.optionList,this.answer,this.answerFlag);

子组件方法

之前错误的思路

watch:{
	optionList: {
			deep: true,  // 需要深度监听
			handler(newValue,oldValue){
				// 更新数据
				this.u_answer = this.answerFlag;
				if(this.u_answer){
					this.checkanswer = ['/']; // 回显的特殊处理
				}else{
					this.checkanswer = [];
				}
				this.value = [];
				this.options = newValue;
			}
		},
				
},

新思路(忽略我的参数命名,写文章的时候方便。)

// 更新数据
	updateOptions(d,a,f){
		console.log("刷新")
		// 更新数据
		this.u_answer = f;
		if(a){
			this.checkanswer = ['/']; // 回显的特殊处理
		}else{
			this.checkanswer = [];
		}
		this.value = [];
		this.options = d;
	},

最后完美解决问题

uniapp 刷新组件数据,前端,uni-app,小程序,javascript文章来源地址https://www.toymoban.com/news/detail-595568.html

到了这里,关于uni-app小程序父组件数据更新,实现自定义组件刷新视图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序:uni-app列表数据渲染子组件修改数据sync/v-model无效的问题

    有如下一个列表,将数据循环传递给子组件,实现业务解耦,组件拆分 Vue的正常逻辑是,父组件和子组件的数据传递的是一个对象,属于引用传递,可以直接在子组件中修改数据,父组件中也会变化,它们操作的是同一个数据。 uni-app子组件中修改 H5正常,转为微信小程序后

    2024年02月10日
    浏览(42)
  • uni-app自定义组件components导入失败或页面不显示文本等

            一般来说分三步走,如下图  如果引入不成功则考虑以下几个问题: 是 components 而非 component 导入后的命名方式采用驼峰命名法 检查需要引入的文件路径和文件名是否正确 如果还有问题,则采用第二种方式直接在 components 中引入、注册一体,引入直接使用 chan

    2024年02月16日
    浏览(43)
  • uni-app小程序自定义分享内容

    自定义的传参

    2024年02月01日
    浏览(44)
  • uni-app uni-ui 微信小程序 uni-datetime-picker 时间选择组件设置start和end属性,实现时间选择限制

     效果如图,先选择开始日期,完成日期需要在开始日期之后,先选择完成日期,开始日期需要在完成日期之前 需要用到uni-datetime-picker官方的三个属性  代码如下 这样一个能够限制选定范围的组件就ok了!    

    2024年02月11日
    浏览(44)
  • uni-app 使用v-model封装picker组件和自定义样式

    1、v-model封装picker组件 (1)封装组件myPicker.vue (2)组件调用 (3)属性说明 属性名 类型 默认值 说明 options Object 数据选项,默认[{ name: \\\"办公\\\", value: \\\"1\\\" }]格式 rangeKey String label 数据选项的属性名 rangeValue String value 数据选项的属性值 placeholoder String 请选择 未选择数据时的默认

    2024年02月09日
    浏览(43)
  • uni-app:vue3 + uni-app 在微信小程序中无法使用app.component全局注册组件

    按上文中的代码执行后,会发现在微信小程序开发中全局注册的组件是无法显示的,这是uniapp的一个未解决bug, 在uniapp中出了可以通过vue实例的component方法注册全局组件外,uniapp支持另一种全局注册的方式,就是通过 easycom 扫描注册,步骤如下 easycom 的扫描流程是:通过代码

    2024年02月16日
    浏览(58)
  • uni-app 微信小程序自定义导航栏

    上面的导航栏主要由状态栏(就是手机电量显示栏)和小程序的导航栏组成,android手机一般为48px,ios手机一般为44px 1、设置navigationStyle:custom 2、页面导航栏div 3、获取statusBarHeight高度 4、获取navTitleHeight的高度

    2024年02月14日
    浏览(36)
  • 微信小程序修改原生组件样式(uni-app)

    微信小程序修改原生组件样式 全局修改,直接将修改的样式写在全局的样式文件中; 特殊情况:修改swiper指示点样式时,需要包裹在swiper的样式选择器下才生效。 直接将下列代码放在全局样式中是不会生效的,需要加上swiper组件的元素选择器或swiper组件的其他样式名也可。

    2024年02月05日
    浏览(44)
  • uni-app: onBackPress() 监听页面返回 - 更新数据

    生命周期 - onBackPress() 监听页面返回 函数名 说明 平台差异说明 onBackPress 监听页面返回 ,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack表示来源是 uni.navigateBack ;详细说明及使用:onBackPress 详解。支付宝小程序只有真机

    2024年02月11日
    浏览(41)
  • uni-app 微信小程序蓝牙模块的解耦封装-持续更新

    core.js tool.js util.js main.js

    2024年03月27日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包