原生基础选择组件打开我的键盘

问题描述 投票:0回答:2

我正在使用基于本机的选择组件,当我尝试打开选择项目时,它会打开键盘。在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 属性中关闭键盘,但不起作用

react-native native-base
2个回答
2
投票

我遇到了同样的问题,并在本机基础 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>
              )}

0
投票

拉尔夫,它在这里完美运行。谢谢

© www.soinside.com 2019 - 2024. All rights reserved.