当前位置: 首页 > article >正文

mint-ui Picker 显示异常

mint-ui Picker 显示异常

现象

最近一个老项目页面显示异常,使用mint-ui Picker显示异常,直接显示成了 数据对象,而不是具体travelName 字段
在这里插入图片描述

组件

mint-ui Picker

使用方式(vue方式)


// template
<mt-picker 
    :slots="slots" 
    value-key="name" 
    :itemHeight="40" 
    :visibleItemCount='3' 
></mt-picker>


// js 
data(){
    return {
        slots: [
            {
                "flex": 1,
                "values": [
                    {
                        "travelNo": "",
                        "travelName": "",
                        "travelId": "1",
                    }
                ],
                "className": "slot1",
                "textAlign": "center",
                "defaultIndex": 0,
                "valueIndex": 0
            }
        ]
    }
}

导致错误原因

Picker 组件 value-key 为 travelName,

slots 字段中 travelName 字段为空,导致渲染,直接渲染了这一条数据

{
    "travelNo": "",
    "travelName": "",
    "travelId": "1",
}

我们来看看 picker-slot 源码是怎么渲染的

具体渲染如下

  • 先判断当前 itemValue 是否为对象
  • 是对象 ,使用 itemValue[valueKey],且字段有值 并且不为数字0,则渲染 itemValue[valueKey],否则为 渲染 itemValue(valueKey即为传入的travelName)
  • 不是对象 直接使用 itemValue
 {{ typeof itemValue === 'object' && itemValue[valueKey] ? itemValue[valueKey] : itemValue }}

【注】:picker-slot 源码

<template>
  <div class="picker-slot" :class="classNames" :style="flexStyle">
    <div v-if="!divider" ref="wrapper" class="picker-slot-wrapper" :class="{ dragging: dragging }" :style="{ height: contentHeight + 'px' }">
      <div class="picker-item" v-for="itemValue in mutatingValues" :class="{ 'picker-selected': itemValue === currentValue }" :style="{ height: itemHeight + 'px', lineHeight: itemHeight + 'px' }">
        {{ typeof itemValue === 'object' && itemValue[valueKey] ? itemValue[valueKey] : itemValue }}
      </div>
    </div>
    <div v-if="divider">{{ content }}</div>
  </div>
</template>

http://www.kler.cn/a/375646.html

相关文章:

  • 奇瑞不客气智驾 晚不晚?
  • 在米尔电子MPSOC实现12G SDI视频采集H.265压缩SGMII万兆以太网推流
  • RocketMQ 消息消费失败的处理机制
  • 系统安全架构的深度解析与实践:Java代码实现
  • redis做缓存,mysql的数据怎么与redis进行同步(双写一致性)
  • lanqiaoOJ 1112:小王子双链表 ← STL list
  • 数字信号处理:自动增益控制(AGC)
  • 高频谐振功放电路
  • C语言 | Leetcode C语言题解之第526题优美的排列
  • C++基本语法
  • 如何在Linux系统中使用Ansible进行自动化部署
  • 手机玩潜水员戴夫?GameViewer远程如何随时随地玩潜水员戴夫教程
  • node.js模块化分析
  • C++ 文件操作详解
  • 多线程2之线程同步
  • 考研要求掌握的C语言(二叉排序树专题)
  • blender 小车建模 建模 学习笔记
  • C++之多态(上)
  • [实时计算flink]CREATE TABLE AS(CTAS)语句
  • 部署服务器监控集群之“Prometheus Grafana Alertmanager“
  • 智慧城市:未来城市的蓝图
  • Jupyter Notebook 打开指定文件夹
  • Straightforward Layer-wise Pruning for More Efficient Visual Adaptation
  • 用示波器如何测量信号的相位差?
  • 鸿蒙系统不断发展的看法
  • Python实现Lucas-Lehmer测试