В 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" /> }
</>
)
}