PickerView

PickerView 选择器视图

代码示例

import { BfPickerView, BfPickerViewColumn } from '@bud-fe/react-taro-ui';
import type { IBfPickerViewProps } from '@bud-fe/react-taro-ui/es/components/bf-picker-view';
import { View } from '@tarojs/components';
import { useState } from 'react';
import styles from './index.module.less';
export default function PickerViewDemo() {
const [value, setValue] = useState([1, 2]);
// 生成年份数据
const years = Array.from({ length: 50 }, (_, i) => (2000 + i).toString());
// 生成月份数据
const months = Array.from({ length: 12 }, (_, i) => (i + 1).toString());
// 处理值变化
const handleOnChange: IBfPickerViewProps['onChange'] = (e) => {
console.log('PickerView onChange', e.detail.value);
setValue(e.detail.value);
};
return (
<View className={styles['page-picker-view-demo']}>
<View className={styles['title']}>PickerView 组件示例</View>
<View className={styles['picker-container']}>
<BfPickerView
style={{ height: 200 }}
value={value}
onChange={handleOnChange}
onPickStart={() => console.log('PickerView onPickStart')}
onPickEnd={() => console.log('PickerView onPickEnd')}
>
<BfPickerViewColumn>
{years.map((item) => (
<View style={{ color: 'tomato' }} key={`year-${item}`} data-value={item}>
{item}
</View>
))}
</BfPickerViewColumn>
<BfPickerViewColumn>
{months.map((item) => (
<View style={{ color: 'steelblue' }} key={`month-${item}`} data-value={item}>
{item}
</View>
))}
</BfPickerViewColumn>
</BfPickerView>
</View>
<View className={styles['result']}>
当前选择: {years[value[0]]}{months[value[1]]}
</View>
</View>
);
}

API

属性名描述类型默认值
value数组中的数字依次表示 picker-view 内的 picker-view-column 选择的第几项(下标从 0 开始), 数字大于 picker-view-column 可选项长度时,选择最后一项。number[]--
indicatorStyle设置选择器中间选中框的样式string | CSSProperties--
indicatorClass设置选择器中间选中框的类名string--
onChange当滚动选择,value 改变时触发 change 事件,event.detail = {value: value}; value为数组,表示 picker-view 内的 picker-view-column 当前选择的是第几项(下标从 0 开始)CommonEventFunction<onChangeEventDetail>--
onPickStart当滚动选择开始时候触发事件CommonEventFunction<any>--
onPickEnd当滚动选择结束时候触发事件CommonEventFunction<any>--
dumi10:24