【问题标题】:UseContext React hooksUseContext 反应钩子
【发布时间】:2021-01-09 13:42:16
【问题描述】:

如何使用 UseContext 使这个 const '' data '' 在整个项目中都可以访问?我正在尝试实施,但我做不到。它不一定与 UseContext 相关,它只是我研究的一种方式

import api from '../../services/api';
import React, {useContext} from 'react';


export default async function getItems() {
  try {
    const data = await api.get("/list-results");
    return data;
    
  } catch (error) {
    return error
  }
}

【问题讨论】:

    标签: javascript reactjs typescript


    【解决方案1】:

    首先,为自己创建一个上下文:

    const MyContext = React.createContext(defaultValue);
    

    然后调用您的 getItems() 并将结果存储在一个状态中并将其传递给您的上下文提供者:

    const [storedData, setStoredData] = useState<MyData | null>(null);
    useEffect(() => {
        getItems().then((data) => setStoredData(data));
    }, []);
    if (!storedData) return <div>Loading</div>;
    return <MyContext.Provider value={}><MyApp/> </MyContext.Provider>;
    

    理想情况下,在那里做更多的错误处理。

    最后,在 MyApp 某处的组件中使用 useContext 获取上下文:

    const data = useContext(MyContext);
    

    代码未经测试,应被视为伪代码。

    【讨论】:

      猜你喜欢
      • 2020-12-03
      • 2020-01-23
      • 1970-01-01
      • 2020-02-20
      • 2019-07-08
      • 2019-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多