【问题标题】:data is null after fetching it from API从 API 获取后数据为空
【发布时间】:2022-11-24 17:11:29
【问题描述】:

我正在尝试为投资组合制作电影应用程序,我有一个带有一些数据的 api,我正在尝试使用 useEffect 获取它然后设置状态,我还使用 useContext 挂钩将数据传递给子道具但数据为空.

This is App.js

import "./App.css";
import { useEffect, useState, createContext } from "react";
import Axios from "axios";
import { Main } from "./components/Main/Main";

export const AppContext = createContext();

function App() {
  const [data, setData] = useState([]);

  useEffect(() => {
    Axios.get("http://www.omdbapi.com/?s=star wars&apikey=459f1ce1").then((res) => {
      setData(res.data.Search);
    })
  }, []);
  
  return (
    <div className="App">
      <AppContext.Provider value={data}>
        <Main />
      </AppContext.Provider>
    </div>
  );
}

export default App;


This is Main.js

import React from "react";
import { useContext } from "react";
import { AppContext } from "../../App";
import "./Main.css";

export const Main = () => {
  const { data } = useContext(AppContext);
  console.log(data)

  return <div>

  </div>;
};

export default Main;

【问题讨论】:

    标签: javascript reactjs axios


    【解决方案1】:

    目前上下文的value只是data状态的值。有能力去解构上下文将您的值更改为包含数据的对象。

    <AppContext.Provider value={{ data }}>
    

    【讨论】:

    • 是的,我刚刚在 atm 上修好了!!
    • 感谢您的回复 <3
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 2016-03-11
    • 2012-08-29
    • 2015-11-01
    • 2021-05-15
    相关资源
    最近更新 更多