大家好,我还是React的初学者,我正在try 使用useEffect从API获取数据,然后使用useState设置状态,然后将该状态作为props 传递给子组件.
但在我的子组件中,每次执行控制台操作时,它都会显示为一个空array.日志(log)我知道在第一次渲染时,我的初始useState的状态是一个空数组[].但我一直在努力解决这个问题,并发送正确的json数据,但似乎无法做到这一点.
我正在try 这样做,因为我有多个子组件,我想发送数据到.
下面是我编写的一个变通方法,其中包括一些变通方法,但也不起作用:
const api = 'url string'
const [races, setRaces] = useState([]);
const [races2, setRaces2] = useState([races]);
useEffect(() => {
fetch(api)
.then((resp) => resp.json())
.then((response) => setRaces(response));
}, []);
useEffect(() => {
if (races.length) setRaces2(races);
}, [races]);
<Child data={races2}
但当我这样做的时候,这似乎也不起作用.在子组件中记录(props.data).
这是人们通常获取数据并try 发送数据的方式,但在这两种情况下都是一样的.
const api = 'url string'
const [races, setRaces] = useState([]);
useEffect(() => {
fetch(api)
.then((resp) => resp.json())
.then((response) => setRaces(response));
}, []);
<Child data={races}
下面是一个粗略的流程图,解释了我想做的事情:
提前感谢您的帮助.