DatePicker在React自定义挂钩中不起作用

时间:2019-05-19 15:01:20

标签: javascript reactjs datepicker react-hooks

我目前正在使用的React DatePicker具有onChange属性,可让您跟踪所选日期

<DatePicker
  selected={startDate}
  startDate={startDate}
  endDate={endDate}
  onChange={e => setValue(e)}
/>

当我以直接的方式使用useState()挂钩时,它工作得很好:

const [value, setValue] = useState()

但是,我需要在自定义的Hook中使用它来组合各种变量。 onChange()属性无法在该设置下工作。没有错误,只是没有交互。

例如,我如下定义自定义钩子,并像以前一样从onChange()属性调用,什么都没有发生:

const useCustomHook = () => {
  const [value, setValue] = useState()
  return [value, () => setValue()]
}
const [value, setValue] = useCustomHook()

1 个答案:

答案 0 :(得分:4)

之所以会发生这种情况,是因为setter没有收到任何参数,因此也没有更新状态值。

尝试以这种方式返回钩子:

const useCustomHook = () => {
  const [value, setValue] = useState()
  return [value, (val) => setValue(val)]
}

或者直接传递setValue

const useCustomHook = () => {
  const [value, setValue] = useState()
  return [value, setValue]
}