【uni-app】关于v-if和v-else-if的一个踩坑记录

项目场景:

uni-app项目,项目中有一个答题模块,需求是要让题目切换以swiper的方式滑动,于是引入了一个pw-swiper组件来实现


问题描述:

由于题目分为单选题和多选题,所以需要使用v-if来进行条件渲染。
原本是这么写的:
单选题部分<template v-if="item.testQuestionsType === 0 || item.testQuestionsType === 1">
多选题部分<template v-else-if="item.testQuestionsType === 2">
在PC端网页预览的时候没有任何问题,但是放到移动端APP的时候,问题来了,虽然没有报任何错,但多选题的选项样式无法正确实时反馈,点击选择某题某个选项时,有可能需要切换题目后才能看到样式切换;也有可能点击选择后,反而是其他题目发生了样式切换;另外还有些题目表现完全正常。这些问题大概是按索引以3的倍数来循环出现的。

附较为完整的代码:

<pw-swiper
class="main"
	ref="swiper"
	:list="subjectList"
	:dataIndex="subjectIndex"
	@change="swiperChange"
>
	<template class="swiper-item" v-slot:default="{ item, index }">
		<scroll-view scroll-y style="height: 100%; width: 100%;">
			<block>
				<view class="u-flex u-m-l-44 u-m-r-44">
					<!-- 单选题部分 -->
					<template v-if="item.testQuestionsType === 0 || item.testQuestionsType === 1">
						<u-radio-group
							wrap
							class="u-flex-col u-flex-1"
							v-model="item.userAnswer"
							@change="OptionChange($event, 'radio', item, index)"
						>
							<view
								class="question-option u-flex-col"
								:class="{
   
									correct: item.result && ~item.isAnswerStr.indexOf(option.tag),
									wrong:
										item.result &&
										~item.userAnswer.indexOf(option.tag) &&
										!~item.isAnswerStr.indexOf(option.tag)
								}"
								v-for=
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值