首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用React从状态内传递来自axios的数据?

如何使用React从状态内传递来自axios的数据?
EN

Stack Overflow用户
提问于 2022-10-03 08:58:03
回答 1查看 77关注 0票数 0

我有一个api (一个对象的arr ),我需要将它传递到一个状态,这样我就可以在一个组件中传递数据,以便在网站上显示它。

第一种方法:

代码语言:javascript
复制
    // pulls the api data
    const newData = axios.get(url).then((resp) => {
        const apiData = resp.data;

        apiData.map((video) => {
            return video;
        });
    });

    // sets the state for the video
    const [selectedVideo, setSelectedVideo] = useState(newData[0]);
    const [videos] = useState(videoDetailsData);

    ...

    return (
        <>
            <FeaturedVideoDescription selectedVideo={selectedVideo} />
        </>
    )

第二种方法:

代码语言:javascript
复制
    const useAxiosUrl = () => {
        const [selectedVideo, setSelectedVideo] = useState(null);

        useEffect(() => {
            axios
            .get(url)
            .then((resp) => setSelectedVideo(resp.data))
        });
        return selectedVideo;
    }

    ...

    return (
        <>
            <FeaturedVideoDescription selectedVideo={selectedVideo} />
        </>
    )

这两种方法似乎都行不通。我在这里错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-03 09:08:03

正确的方法是在useEffect函数中调用axios方法。

代码语言:javascript
复制
const fetchData = axios.get(url).then((resp) => setSelectedVideo(resp.data)));

useEffect(() => {
  fetchData();
}, [])

或者如果你需要async/await

代码语言:javascript
复制
useEffect(() => {
  const fetchData = async () => {
    const response = await axios.get(url);
    setSelectedVideo(resp.data);
  }
    
  fetchData();
}, [])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73933173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档