Как получить значение valeu из функции asyn c и передать его компоненту (React)? - PullRequest
0 голосов
/ 02 августа 2020

Итак, я пытаюсь получить это значение из функции asyn c, пока все хорошо, но я не могу получить это значение и передать его своему компоненту, как показано:

  • Я использую реакцию с Ioni c 5.
const IdeiaId: React.FC<projectIdInterface> = (props) => {
  const [idProjeto, setIdProjeto] = useState<number>(0);
  const [ativo, setAtivo] = useState<boolean>(true);
  const [criadoEm, setcriadoEm] = useState<string>("");
  const [imgIdeia, setImgIdeia] = useState<string>("");
  const [descricao, setDescricao] = useState<string>("");
  const [subtitulo, setSubtitulo] = useState<string>("");
  const [titulo, setTitulo] = useState<string>("");
  const [status, setStatus] = useState<string>("");

  useIonViewWillEnter(() => {
    const idIdeia = +props.match.params.id;
    let resp = Requests.lerIdeia(idIdeia);
    resp.then((res) => {
      if (res && res.ok) {
        if (res.data) {
            res = res.data;
            res[OBJKEYS.projects.proPk] ? setIdProjeto(res[OBJKEYS.projects.proPk]) : setIdProjeto(0);
            res[OBJKEYS.projects.imagePath] ? setImgIdeia(OBJKEYS.images.imageUrl + res[OBJKEYS.projects.imagePath]) : setImgIdeia(OBJKEYS.images.defaultAvatar);
            res[OBJKEYS.projects.proAtivo] ? setAtivo(res[OBJKEYS.projects.proAtivo] === '1') : setAtivo(false);
            res[OBJKEYS.projects.criadoEm] ? setcriadoEm(res[OBJKEYS.projects.criadoEm]) : setcriadoEm('');
            res[OBJKEYS.projects.descricao] ? setDescricao(res[OBJKEYS.projects.descricao]) : setDescricao('');
            res[OBJKEYS.projects.subtitulo] ? setSubtitulo(res[OBJKEYS.projects.subtitulo]) : setSubtitulo('');
            res[OBJKEYS.projects.titulo] ? setTitulo(res[OBJKEYS.projects.titulo]) : setTitulo('');
            res[OBJKEYS.status.status] ? setStatus(res[OBJKEYS.status.status]) : setStatus('');
        } else {
          console.log(res.errors);
        }
      }
    });
  });

  console.log(idProjeto);
  return (
    <IonPage>
      <Header name="Ideia"></Header>
      <ProjetoImageSlides idProjeto={idProjeto} key={0} />
      <IonContent>
        <div></div>
        <h1>{titulo}</h1>
      </IonContent>
    </IonPage>
  );
};

Как лучше всего решить эту проблему? Итак, я получаю это значение idProjeto из функции asyn c и хочу передать его в компонент ProjetoImageSlides, но оно не обновляется при изменении значения, потому что оно загружалось раньше. Что я могу сделать? Должен ли я загружать его после получения значения?

1 Ответ

0 голосов
/ 03 августа 2020
• 1000 )

, но лучшее решение - справиться с этим изнутри ProjetoImageSlides, чтобы он обновлялся при изменении idProjeto.

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