react-native - 如何关闭@react-native-community/datetimepicker
问题描述
有没有办法关闭以前打开的实例@react-native-community/datetimepicker
?我想在componentWillUnmount
或使用setTimeout
或其他一些事件中关闭它。不幸的是,即使组件被移除,本机选择器仍保持打开状态。我试过这样的事情:
function example() {
const [showPicker, setShowPicker] = useState(false);
setTimeout(() => {
setShowPicker(!showPicker);
}, 5000);
return (
<>
{showPicker && (
<DateTimePicker mode="date" value={new Date()} />
)}
</>
);
}
这使得选择器每 10 秒打开一次,但需要手动关闭。有什么方法可以直接从代码中关闭它(而不是由用户)?
解决方案
试试这个可能会有所帮助
import React, { useEffect } from 'react'
function example() {
const [showPicker, setShowPicker] = useState(false);
useEffect(() => {
setShowPicker(true);
// returned function will be called on component unmount
return () => {
setShowPicker(false)
}
}, []);
return (
<>
{showPicker && (
<DateTimePicker mode="date" value={new Date()} />
)}
</>
);
}
您可以在 Hooks 中检查ComponentWillMount
推荐阅读
- asp.net-core - 使用 Openiddict 作为外部登录提供程序
- azure-data-explorer - 是否有可能有半生不熟的范围?
- windows - 使用 Windows 任务计划器执行 Php 命令
- python - python中的以下代码行是什么意思?我不知道“ List[str] ”是如何工作的
- python - 考虑到可能的列排列,删除 spark 数据帧重复项
- mongodb - 使用单独的过滤器对数据进行分组(MongoDB 查询)
- sql - Spark sql-基于另一个聚合选项进行聚合
- node.js - 如何使用用两种不同语言(Flask、Node.js)编写的后端 docker 在单个服务器上运行
- android - 使用 customword 数组适配器而不是资源字符串数组 KOTLIN
- javascript - 询问如何在 Telegram 中为内联查询创建数组