项目场景:
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=