请教如何做到部分渲染,uniapp中,name是上一个页面传过来的数据再渲染的,其中有7个值,在同一个页面下的uni-popup组件中,有左右联动导航,item.name是name下的二级数据导航,其和右侧数据联动,那么如何做到比如当name=A,popup下的item.name只渲染A对象下的数组,其他的不出现,name=B,item.name只渲染B对象下的数组,谢谢
<view class="">{{name}}-></view>
{{item.name}}
循环渲染出来的右侧列表,和左侧item.name可联动
<view v-for="(v,i) in sortarr" :key="i">
<view v-for="(item,i) in v.grade2" :key="i">
<view class="title1,right_title" :id="'po'+i">{{item.name}}</view>
<view v-for="(item,j) in item.grade3" :key="j">
<text class="item">{{item.name}}</text>
</view>
</view>
</view>
不知道你这个问题是否已经解决, 如果还没有解决的话:解决方案:
props:{
data:{
type:Object,
default(){
return {}
}
}
}
data() {
return {
selectData: this.data, // 根据传递进来的数据进行条件渲染的变量
...
}
}
<view v-for="(item,index) in navList" :key="index">
<text>{{item.name}}</text>
<view v-if="selectData === item.value"> // 根据传递进来的数据进行条件渲染
<view v-for="(rightItem, rightIndex) in item.array" :key="rightIndex">
<text>{{rightItem}}<text>
</view>
</view>
</view>
完整代码示例:
<template>
<div>
<view v-for="(item,index) in navList" :key="index">
<text>{{item.name}}</text>
<view v-if="selectData === item.value">
<view v-for="(rightItem, rightIndex) in item.array" :key="rightIndex">
<text>{{rightItem}}</text>
</view>
</view>
</view>
</div>
</template>
<script>
export default {
props:{
data:{
type:Object,
default(){
return {}
}
}
},
data() {
return {
selectData: this.data,
navList: [
{name: "A", value: "A", array: ["A1", "A2"]},
{name: "B", value: "B", array: ["B1", "B2"]}
]
}
}
}
</script>
太感谢你了,解决了,我把v.grade1 === item.value加到了popup下左右渲染的数据中竟然可以了,谢谢哦