En el siguiente código, estoy tratando de usar axios get request from await axios.get('/products/api') solo funciona. Puedo ver los datos en la consola pero para await axios.get('/users/api') Indefinido se devuelve en la consola, pero cuando intento obtener una solicitud a través de Postman, puedo obtener los resultados. Estoy atascado aquí.
''' const [datos de usuario, establecer datos de usuario] = estado de uso ([]); const [productos, setproductos] = useState([]);
useEffect(() => { const fetchUserData = async () => { const { users } = await axios.get('/users/api') setuserdata(users); const { data } = await axios.get('/products/api') setproducts(data); } fetchUserData(); }, []); console.log(products) console.log(userdata)Antes de desestructurar su consola de respuesta, registre la respuesta. Me refiero a probar:
const users = await axios.get('/users/api'); console.log(users)Podría ser que los usuarios no formen parte del objeto de datos axios predeterminado. Si aún no está definido, debe verificar que su API devuelva la respuesta (POSTMAN).
Actualiza tu código a esto:
const users = await axios.get('/users/api') setuserdata(users.data); const products = await axios.get('/products/api') setproducts(products.data);Cree que lo que estás tratando de hacer es:
const [userdata, setUserData] = useState([]) const [products, setProducts] = useState([]) useEffect(() => { const fetchUserData = async () => { const users = await axios.get('/users/api') setUserData([...userdata, users]) const data = await axios.get('/products/api') setProducts([...products, data]) } fetchUserData() }, [userdata, products]) console.log(products) console.log(userdata) Si solo usa [] en useEffect , solo se ejecutará una vez al principio, pero por memoria, React arrojará una advertencia para products y datos de userdata .
Piensa que también funcionarían mejor en su propio useEffect . Incluso podría hacer que su código sea más limpio creando una función y pasando la ruta a la función. Me gusta:
const getData = async (path) => await axios.get(`/${path}/api`)