Как правильно передать useState при вызове асин c функций? Ошибка: необработанный отказ (TypeError): setfunctions не является функцией - PullRequest
0 голосов
/ 26 апреля 2020

Я заполняю таблицу данных, извлеченных из базы данных пожарной базы Firebase. Я использую хук useState, который мне нравится, однако я сталкиваюсь с ошибкой при попытке передать useState моему асин c методу.

Есть идеи?

// My async function
const collectionGroupGet = async (setfunctions) => {
    let functionsArray = [];

  var functions = db.collectionGroup("Functions");
  functions.get().then(function (querySnapshot) {
    querySnapshot.forEach(function (doc) {
        functionsArray.push({ data: doc.data() });
        setfunctions(functionsArray);
    });
  });

};

// My functional component
const ExpFirestore = () => {
 const [functions, setfunctions] = useState("");
 collectionGroupGet(setfunctions)

 ... other irrelevant code

1 Ответ

1 голос
/ 26 апреля 2020

Здесь недостаточно информации, чтобы быть уверенным, в чем проблема, но вы должны делать свои вещи async в функции useEffect . Вот рабочий пример передачи метода useState set функции async во время рендеринга. Надеюсь, это поможет! Если вы предоставите дополнительную информацию или песочницу, которая воспроизводит проблему, я могу обновить ответ, чтобы он был более конкретным c.

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