javascript - useState react hook不设置数组状态

标签 javascript reactjs react-hooks

我正在尝试将视频状态设置为来自 api 的响应的 items 数组,但是当我 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);
      });
  };

如何将 items 数组设置为视频状态?

最佳答案

Ciao,不幸的是,在 setVideos 调用后,使用钩子(Hook)无法记录 videos,因为 setVideos 是异步的。

要获取 videos 的最后一个值,您必须以这种方式使用 useEffect 钩子(Hook):

useEffect(() => {
   console.log(videos);
}, [videos]);

关于javascript - useState react hook不设置数组状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63375023/

相关文章:

javascript - 使用 jQuery 在输入太短时显示警报消息

javascript - 如何在特定时间刷新页面

javascript - 对象作为 React 子对象无效 - 文本输入

javascript - ReactJs 防止输入类型数字中的 e 和点

javascript - React Hooks setState 的意外结果

javascript - 更改单个 div(即 map 内)的状态,而不是更改 map 内所有 div 的状态

javascript - 我们可以在 javascript url 中传递 GET 变量吗?

javascript - Meteor - 设置登录用户

javascript - 使用 React Router,我如何为 HTML 元素分配一个类?

reactjs - React Hooks - 在不违反 Hooks 规则的情况下返回 useContext