Как обновить несколько состояний в пакете с помощью useState - PullRequest
0 голосов
/ 20 апреля 2020

в обычном режиме, внутри функции onChange вы, как правило, выполняете пакетное обновление состояний, например:

_onChange:function(){
this.setState({
    date: new Date(),
    setShowDatepicker: false()
})

}

Я пытаюсь выяснить, как пакетно обновлять состояние в функционале реагирует

  const [date, setDate] = useState();
  const [showDatePicker, setShowDatepicker] = useState(false);

  const onChangeDate = (event, selectedDate) => {
     const currentDate = selectedDate || date;
     setDate(currentDate); //want to batch this will the setState below
     setShowDatepicker(false);
  };

Каждый раз, когда я устанавливаю состояние, это вызывает повторный рендеринг, влияющий на поведение. Не вижу решения в документации. Есть предложения?

1 Ответ

2 голосов
/ 20 апреля 2020

Вы можете создать дату и setShowDatePicker для одноразового использования


const [dateValues, setDateValues] = useState({
    date: new Date(),
    setShowDatepicker: false
});

const onChangeDate = (event, selectedDate) => {
  const currentDate = selectedDate || date;

  setDateValues({
      date: currentDate,
      setShowDatepicker: false
  })
};

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...