Javascript React Native:如何在屏幕渲染时或之前立即获取数据?

Javascript React Native:如何在屏幕渲染时或之前立即获取数据?,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我是这样做的,但是现在我需要在调用函数之前保护文件。我需要在用户切换到屏幕时立即调用它,因为将显示的项目来自提取 useLayoutEffect(()=>{ 异步函数getUserData(){ var contracents=await firebase.firestore().doc(“contracents/”+user.uid.get(); 变量标签=[] 配料.data().配料.forEach(配料=>{ 标签.推送(配料.标签) }) SetUserComponents(标签)

我是这样做的,但是现在我需要在调用函数之前保护文件。我需要在用户切换到屏幕时立即调用它,因为将显示的项目来自提取

useLayoutEffect(()=>{
异步函数getUserData(){
var contracents=await firebase.firestore().doc(“contracents/”+user.uid.get();
变量标签=[]
配料.data().配料.forEach(配料=>{
标签.推送(配料.标签)
})
SetUserComponents(标签)
console.log(UserComponents)
setUserRecipes([])
}
getUserData()
获取配方(用户配料)

},[])
需要进行一些更改:

  • 您可以更改您使用的react钩子,更好地使用useffect钩子,因为您没有使用任何dom变体
  • 您可以实现自定义钩子
  • import React,{useState,useffect}来自“React”;
    const useFetch=(targetUrl)=>{
    const[data,setData]=useState(null);
    useffect(()=>{
    异步函数fetchData(){
    const response=等待获取(targetUrl);
    const json=await response.json();
    setData(json);
    }
    fetchData();
    },[targetUrl]);
    返回数据;
    };
    常量应用=()=>{
    常量URL=https://api.spoonacular.com/recipes/findByIngredients?ingredients=“+UserComponents.join(“,”+“&number=“+String(number)+”&apiKey=“+apiKey”;
    const result=useFetch(URL);
    返回(
    {JSON.stringify(结果)}
    );
    }