我试图将视频状态设置为api响应的项目数组,但是当我console.log视频时,它返回一个空数组...。
这是获取我设置视频状态的api的代码
const [videos, setVideos] = useState([]);
const handleFormSubmit = async (searchterm) => {
await fetch(
`https://www.googleapis.com/youtube/v3/search?${params.toString()}&q=${searchterm}`
)
.then((response) => response.json())
.then((data) => {
console.log(data);
setVideos(data.items);
console.log(videos);
});
};
如何将项目数组设置为视频状态? 最佳答案
抱歉,遗憾的是,使用钩子(Hook)您无法在videos
调用后记录setVideos
,因为setVideos
是异步的。
要获得videos
的最后一个值,您必须以这种方式使用useEffect
钩子(Hook):
useEffect(() => {
console.log(videos);
}, [videos]);
关于javascript - useState react钩子(Hook)未设置数组状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63375023/