Это le git для вызова асин c функции непосредственно в компоненте реакции? - PullRequest
0 голосов
/ 25 февраля 2020

Я использую indexeddb для хранения данных и использую useReducer () для обработки действий.

, но я не уверен, что вызов функции asyn c непосредственно в компоненте реагирования является правильным.

спасибо

function Component({ dispatch }) {
  function pushToast() {
    const id = uniqid();
    dispatch({ type: "PUSH_TOAST", payload: { id, content: "success" } });
    setTimeout(() => dispatch({ type: "CLEAR_TOAST", payload: { id } }) , 3000);
  }
  async function getDocs() {
    try {
      const result = await idb.getDocs();
      dispatch({ type: "REQUEST_SUCCESS", payload: result });
      pushToast();
    } catch (error) {
      dispatch({ type: "REQUEST_FAIL" });
    }
  }
  return (
    <div>
      <button onClick={getDocs}></button>
    </div>
  );
}

Ответы [ 2 ]

3 голосов
/ 25 февраля 2020

Да. это возможно в реагирующем компоненте, но вы не можете сделать это внутри конструктора, потому что конструктор не может ждать ожидания.

1 голос
/ 25 февраля 2020

Прекрасно использовать функции asyn c для onClick внутри функционального компонента.

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