DatePicker не работает в пользовательском хуке React - PullRequest
0 голосов
/ 19 мая 2019

React DatePicker , который я сейчас использую, имеет свойство onChange, которое позволяет вам отслеживать выбранные даты

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

Когда я использую хук useState () простым способом, он прекрасно работает:

const [value, setValue] = useState()

Однако мне нужно использовать его в пользовательском хуке, чтобы собрать различные переменные. Свойство onChange() не работает в этом параметре. Нет ошибок, просто нет взаимодействия.

Например, я определяю пользовательский Hook следующим образом и вызываю из свойства onChange(), как и раньше, ничего не происходит:

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

1 Ответ

4 голосов
/ 19 мая 2019

Это может происходить, потому что установщик не получает никаких аргументов и, следовательно, не обновляет значение состояния.

Попробуйте вернуть свой крючок таким образом:

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

Или просто передать setValue напрямую:

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