useSelector в функцию, возвращает «неопределенное», но в возвращаемом компоненте возвращает данные - PullRequest
0 голосов
/ 23 марта 2020

В useEffect я вызываю функцию, которая должна получить данные, полученные в useSelector, но если я делаю console.log, он возвращает неопределенное значение, но если я делаю console.log внутри, он возвращает данные. Что мне нужно, так это то, что, поскольку я запускаю функцию setId, получаю данные из useSelector

import React, {useState, useEffect} from 'react';
import { useSelector } from "react-redux";
import {useLocation, Redirect} from "react-router-dom";
import { put } from "api";
import {getNutitionistId} from 'api/loader'

import { NUTRITIONIST } from 'store/constants'

const nutId = getNutitionistId()



function useQuery() {
  return new URLSearchParams(useLocation().search);
}

export default function ConnectStripe(props){
  
  var data = useSelector(state=>state[NUTRITIONIST.name].data.find(n=>n._id===nutId));
  const [status, setStatus] = useState('Cargando...');
  const [redirect, setRedirect] = useState(false);
  
  let query = useQuery();
  const stripe_id = query.get("code");
  
  useEffect(() => {
      setId().then(e=>console.log(e, "UNIDO")).catch(er=>{console.log(er, "ERROR")});
  }, [])
  
  const setId = async () => {
    console.log(data) //undefined
    await put(`customers/${data.id_cliente}`,{stripe_id_consultas_online: stripe_id});
  }
  
  
  return(
    <>
    {console.log(data)} //{data}
    {status}
    {redirect && <Redirect to="/configuración" /> }
    </>
  )
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...