Когда я создаю и объект из операции async / await ...
export const getData = async datas => {
const a1 = await getData1(datas);
return { a1 };
};
... а затем сохраните его с помощью useState ...
import { useState, useEffect } from "react";
import { getData } from "./getData";
export const useData = ababab => {
const [data, setData] = useState();
useEffect(() => {
const loadData = async () => {
const newData = await getData(ababab);
setData(newData);
};
console.log(Date.now().toString());
loadData();
}, [ababab]);
return data;
};
... У меня бесконечный цикл. Я не понимаю. Если вы закомментируете setData - он не будет зацикливаться. Если вы вернете только a1, цикл не будет.
Вот где используется useData
:
import React from "react";
import "./styles.css";
import { useAbabab } from "./usaAbabab";
import { useData } from "./useData";
export default function App() {
const ababab = useAbabab();
const data = useData(ababab);
return (
<div className="App">
<h1>Hello CodeSandbox {data && data.a1}</h1>
<h2>Start editing to see some magic happen!</h2>
</div>
);
}
А вот содержимое useAbabab
:
import { useState } from "react";
export const useAbabab = () => {
const [aaa, setAaa] = useState(0);
const [bbb, setBbb] = useState(5);
return { aaa, bbb, setAaa, setBbb };
};