首页 > 解决方案 > React 基于原生的 DatePicker 出现在 iOS 上最小化

问题描述

我正在将原生库用于在 Android 上运行良好的 DatePicker。但是,当我通过 iPhone 上的 Expo 应用程序运行它时,单击它时它不会打开日历。相反,它会在左下角打开一个小框,然后仅在您单击它时打开日历。

这是单击 DatePicker 时发生的情况:

当你点击 DatePicker

然后,如果您单击底部的“2021 年 1 月 29 日”框,您将获得日历并且一切都按预期工作:

当您单击实际日期时

我不知道它是否相关,但似乎很可疑,焦点发生了一些事情,因为在 Android 上,当您第一次从 DatePicker 打开日历时,您必须按两次日期,就像第一个获得焦点一样回到应用程序,第二个实际上是注册媒体。

下面是生成 DatePicker 的代码:

  render() {
    return (
      <Container style={styles.container}>

        <Content padder style={{ padding: 0 }}>

          <View style={{ flexDirection: 'row' }}>
            <DatePicker
              defaultDate={this.state.CheckDate}
              minimumDate={new Date(2018, 1, 1)}
              maximumDate={new Date(2099, 12, 31)}
              chosenDate={this.state.chosenDate}
              // locale={"en"}
              modalTransparent={true}
              animationType={"fade"}
              androidMode={"default"}
              placeHolderText="Select Date"
              textStyle={{ color: "grey" }}
              // placeHolderTextStyle={{ color: "#d3d3d3" }}
              placeHolderTextStyle={{ fontSize: 20, color: "#999999", textAlignVertical: "bottom" }}
              onChange={this.onChangeCheckDate}
              disabled={false}
              value={this.state.CheckDate}
            />
          </View>

        </Content>
      </Container>
    );
  }

我正在使用以下版本:

   "@react-native-community/datetimepicker": "3.0.4",
   "native-base": "^2.15.2",

标签: iosreact-nativedatepickernative-base

解决方案


如果您想在 iOS 14 上恢复日期选择器的旧转轮,您需要明确设置它。

display="spinner"

PS 这是截至 2021 年 4 月的最新更改 https://github.com/react-native-datetimepicker/datetimepicker#display-optional


推荐阅读