@react-native-picker/picker 的使用详解

53 min read

@react-native-picker/picker 是一个 React Native 的选择器组件,用于在 app 中显示选择列表。它可以用于选择数字、日期、时间和其他自定义选项。

以下是 @react-native-picker/picker 的使用详解:

安装

首先,要安装 @react-native-picker/picker,可以使用 npm 或者 yarn 进行安装。

使用 npm:

npm install @react-native-picker/picker

使用 yarn:

yarn add @react-native-picker/picker

导入

在需要使用 @react-native-picker/picker 的组件中,需要先导入该组件。

import { Picker } from '@react-native-picker/picker';

基础用法

使用 @react-native-picker/picker 创建一个基本的选择器,通过 selectedValue 属性设置当前选择的初始值,并通过 onValueChange 属性监听选择器值的变化。

<Picker
  selectedValue={selectedValue}
  onValueChange={(itemValue, itemIndex) =>
    setSelectedValue(itemValue)
  }>
  <Picker.Item label="Apple" value="apple" />
  <Picker.Item label="Banana" value="banana" />
  <Picker.Item label="Orange" value="orange" />
  <Picker.Item label="Mango" value="mango" />
</Picker>

在上面的例子中,selectedValuesetSelectedValue 是 useState 钩子的返回值,用于管理选择器的当前值。

动态选项

@react-native-picker/picker 可以动态地根据数据源生成选项。通过使用 Array.map 方法,可以将数据源映射成 Picker.Item 组件的数组。以下是一个动态生成选项的例子:

const fruits = [
  { label: 'Apple', value: 'apple' },
  { label: 'Banana', value: 'banana' },
  { label: 'Orange', value: 'orange' },
  { label: 'Mango', value: 'mango' },
];

<Picker
  selectedValue={selectedValue}
  onValueChange={(itemValue, itemIndex) =>
    setSelectedValue(itemValue)
  }>
  {fruits.map((fruit) => (
    <Picker.Item key={fruit.value} label={fruit.label} value={fruit.value} />
  ))}
</Picker>

自定义样式

@react-native-picker/picker 还可以通过样式属性进行自定义,用于调整选择器的外观。

<Picker
  style={{ backgroundColor: 'lightgrey', fontSize: 16 }}
  itemStyle={{ color: 'blue' }}
  selectedValue={selectedValue}
  onValueChange={(itemValue, itemIndex) =>
    setSelectedValue(itemValue)
  }>
  {/* Options */}
</Picker>

在上面的例子中,style 属性用于调整选择器的样式,itemStyle 属性用于调整选项的样式。

其他属性

@react-native-picker/picker 还支持其他一些属性,例如 enabled 用于设置选择器是否可操作,prompt 用于设置选择器的提示文本,mode 用于设置选择器的模式(例如选择日期和时间),等等。

<Picker
  enabled={false}
  prompt="Select a fruit"
  mode="dropdown"
  selectedValue={selectedValue}
  onValueChange={(itemValue, itemIndex) =>
    setSelectedValue(itemValue)
  }>
  {/* Options */}
</Picker>

以上是 @react-native-picker/picker 的简单用法和配置说明。你可以根据自己的需求,使用更多的属性和方法来实现更复杂的功能。希望这篇详解对你有所帮助!