更新记录
1.0.2(2024-11-07)
下载此版本
1.0.1(2024-11-06)
下载此版本
1.0.0(2024-11-06)
下载此版本
- 处理 picker 双向绑定,自定义 value 值
查看更多
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 3.1.0 app-vue |
√ |
√ |
√ |
√ |
√ |
√ |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
√ |
√ |
√ |
√ |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
nx-picker
简介
官方的 picker 只不支持双向绑定,而且绑定的还只是索引,不能关联数组对象中的 value 值,比较麻烦,所以改造优化一下
用法
主要工作是配置配置好数据源 range
,列表显示的值 range-key
, 绑定的value值 range-value
<template>
<nx-picker v-model="currentType" :range="typeList" range-key="label" range-value="value" @change="changeType">
切换
</nx-picker>
</template>
<script>
export default {
data() {
return {
currentType: '',
typeList: [
{
value: 1,
label: '测试1'
},
{
value: 2,
label: '测试2'
}
]
}
},
methods: {
changeType: function(e) {
console.log(this.currentType);
}
}
}
</script>
核心处理逻辑
<template>
<picker mode="selector" :value="currentIndex" :range="range" :range-key="rangeKey" @change="handleChange">
<slot></slot>
</picker>
</template>
<script>
export default {
props: {
range: {
type: Array,
default: () => [],
},
strokeWidth: {
type: Number,
default: 10,
},
activeColor: {
type: String,
default: '#42b983',
},
rangeKey: {
type: String,
default: ''
},
rangeValue: {
type: String,
default: ''
},
value: {
type: [String, Number],
default: ''
}
},
model: {
prop: 'value',
event: 'updateValue'
},
data() {
return {
currentIndex: 0
}
},
methods: {
handleChange: function(e) {
this.currentIndex = e.detail.value
this.$emit('updateValue', this.getValue(this.currentIndex))
this.$emit('change', e)
},
getValue: function(index) {
const value = this.range[index][this.rangeValue]
return value
}
}
}
</script>
<style>
</style>