Javascript 加载时响应渲染,但在异步调用完成时不更新

Javascript 加载时响应渲染,但在异步调用完成时不更新,javascript,reactjs,asynchronous,Javascript,Reactjs,Asynchronous,*由于异步承诺在渲染发生之前没有实现,因此组件没有显示信息,我遇到了一些问题。我确信这只是简单的事情,但我不知道用谷歌atm搜索什么;) 我只是在使用async Wait for one api.get-through axios,承诺就实现了,而不是在呈现站点之前。我还尝试了useEffect(()=>{},[]);但我的目标是,在没有任何点击的情况下加载站点,并准备好所有信息 我希望这是有意义的!如果您有时间查看,请再次感谢,如果有任何遗漏,请留下评论 谢谢大家!* 组成部分: import

*由于异步承诺在渲染发生之前没有实现,因此组件没有显示信息,我遇到了一些问题。我确信这只是简单的事情,但我不知道用谷歌atm搜索什么;)

我只是在使用async Wait for one api.get-through axios,承诺就实现了,而不是在呈现站点之前。我还尝试了useEffect(()=>{},[]);但我的目标是,在没有任何点击的情况下加载站点,并准备好所有信息

我希望这是有意义的!如果您有时间查看,请再次感谢,如果有任何遗漏,请留下评论

谢谢大家!*

组成部分:
import React,{useffect,useState}来自“React”;
从“../../controller/getServiceInfo”导入getServiceDetails;
功能客户(道具){
常量[serviceButtons,setServiceButtons]=useState([]);
//这里是axios异步调用\/\/
const serviceInfo=getServiceDetails();
//它在渲染时返回未填满的承诺。
如果(服务信息的类型!='undefined'&&serviceInfo.length>0){
让buttonArray=[];
for(设i=0;i
{serviceInfo[i].name}
);
}
设置服务按钮(buttonArray);
}
返回(
客户概述:

名称:{props.db?.firstname+''+props.db?.lastname}
电话:{props.db?.Phone}
电子邮件:{props.db?.Email}

新的保留: {serviceButtons} 当前预订: 这里我们列出了所有可能发生变化的当前预订 { //此按钮不工作…(尝试通过单击检查是否不同) 让buttonArray=[]; for(设i=0;i {serviceInfo[i].name} ); } 设置服务按钮(buttonArray); }} > 手册

); } 导出默认客户;

控制台:

Promise {<pending>}Customer.js:29 undefined
Customer.js:30 []
Customer.js:28 Promise {<pending>}__proto__: Promise[[PromiseState]]: "fulfilled"[[PromiseResult]]: Array(1)
Customer.js:29 undefined
Promise{}Customer.js:29未定义
Customer.js:30[]
Customer.js:28 Promise{}\uuuuu proto\uuuuu:Promise[[PromiseState]]:“已完成”[[promisesult]]:数组(1)
Customer.js:29未定义

React不知道异步调用已完成。React根据状态、道具和上下文更改重新渲染。尝试设置一个状态来保存结果
const[serviceInfo,setServiceInfo]=useState()useffect(()=>{asyncFunc()。然后(result=>setServiceInfo(result))}[setServiceInfo])。谢谢@JacobSmit,这一改进效果很好。非常感谢。
Promise {<pending>}Customer.js:29 undefined
Customer.js:30 []
Customer.js:28 Promise {<pending>}__proto__: Promise[[PromiseState]]: "fulfilled"[[PromiseResult]]: Array(1)
Customer.js:29 undefined