javascript - DatePicker 在 React 自定义 Hook 中不起作用
问题描述
我当前使用的React DatePicker有一个 onChange 属性,可以让您跟踪选定的日期
<DatePicker
selected={startDate}
startDate={startDate}
endDate={endDate}
onChange={e => setValue(e)}
/>
当我以直接的方式使用 useState() 钩子时,它工作得非常好:
const [value, setValue] = useState()
但是,我需要在自定义 Hook 中使用它来组合各种变量。该onChange()
属性无法在该设置中工作。没有错误,只是没有交互。
例如,我将自定义 Hook 定义如下,并onChange()
像以前一样从属性调用,没有任何反应:
const useCustomHook = () => {
const [value, setValue] = useState()
return [value, () => setValue()]
}
const [value, setValue] = useCustomHook()
解决方案
这可能是因为 setter 没有接收任何参数,因此没有更新状态的值。
尝试以这种方式返回你的钩子:
const useCustomHook = () => {
const [value, setValue] = useState()
return [value, (val) => setValue(val)]
}
或者干脆setValue
直接通过:
const useCustomHook = () => {
const [value, setValue] = useState()
return [value, setValue]
}
推荐阅读
- python - 如何使用不同的形状将一个轮廓分成两个?
- sql - 3列选择成2表列,1对多关系,SQL
- android - Google Play 商店中的图标和屏幕截图不更新
- laravel - 使用 VueJs 和 Laravel 上传多个文件
- php - 我无法运行工匠计划:在共享主机上运行 cron 命令
- sql - RQDA - 导出项目中每个文件的类别
- docker - 增加 grafana 数据源时的 Docker 网络问题
- c# - 从 API 获取经度和纬度
- postgresql - 将一个大的 postgres 表拆分为多个 csv
- python - Pyinstaller在运行.exe时隐藏终端