我试图将视频状态设置为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/

10-12 06:41