【问题标题】:DatePicker doesn't work in a React custom HookDatePicker 在 React 自定义 Hook 中不起作用
【发布时间】:2019-05-19 15:01:19
【问题描述】:

我当前使用的 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()

【问题讨论】:

  • setValue(e) 正在调用一个有 1 个参数的函数,setValue() 没有参数 => 2 个不同的函数调用将做 2 个不同的事情

标签: javascript reactjs datepicker react-hooks


【解决方案1】:

这可能是因为 setter 没有接收任何参数,因此没有更新 state 的值。

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

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

或者直接传递setValue

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 1970-01-01
    相关资源
    最近更新 更多