我正在使用基于本机的选择组件,当我尝试打开选择项目时,它会打开键盘。在ios上工作完美,我可以隐藏下拉图标并单击选择字段上的任意位置,它将打开选择项目,但在android上我只能在按下下拉图标时打开。 我使用的是native-base 3.4.28,之前使用的是3.2.1,它适用于ios和android,升级后就不行了。
<Select
flex={1}
// @ts-ignore
dropdownIcon={() => null}
selectedValue={props.value}
placeholder="Gender"
_selectedItem={{
bg: 'primary.100',
endIcon: <CheckIcon size="5" />,
}}
onValueChange={props.handleChange}
fontWeight={props.value ? 600 : 400}
fontSize={'14px'}
{...props.selectProps}
>
<Select.Item label="Female" value={Gender.FEMALE} />
<Select.Item label="Male" value={Gender.MALE} />
<Select.Item label="Non binary" value={Gender.NON_BINARY} />
<Select.Item
label="Not listed above"
value={Gender.NOT_LISTED_ABOVE}
/>
<Select.Item
label="Prefer not to say"
value={Gender.PREFER_NOT_TO_SAY}
/>
</Select>
我尝试在 onOpen 属性中关闭键盘,但不起作用
我遇到了同样的问题,并在本机基础 github 上找到了此修复:https://github.com/GeekyAnts/NativeBase/issues/5723
当选择放置在 FormControl 内部时会发生这种情况,在外部它工作正常。
您可以像这样分别包装标签和错误,并且选择将正常工作:
<FormControl isInvalid={hasError}>
<FormControl.Label>{label}</FormControl.Label>
</FormControl>
<Select
minWidth="200"
selectedValue={value}
onValueChange={itemValue => onChange(itemValue)}
_selectedItem={{
//bg: 'teal.600',
endIcon: <CheckIcon size={5} />,
}}
mt="1">
{renderSelectItems()}
</Select>
{hasError && (
<FormControl isInvalid={hasError}>
<FormControl.ErrorMessage
leftIcon={<WarningOutlineIcon size="xs" />}>
{errorMessage}
</FormControl.ErrorMessage>
</FormControl>
)}
拉尔夫,它在这里完美运行。谢谢