Reactjs 反应不';t等待获取的数据[已编辑]
我在Reactjs 反应不';t等待获取的数据[已编辑],reactjs,Reactjs,我在useffect()中为if提供了等待获取数据的条件。 invoice&&invoice['data']像这样 我的期望是setMoney()会起作用。但它只是传递这个函数 发票是从商店提取的数据。 这是视图组件。 import React,{useContext,useffect,useState}来自'React'; 导入“/invoice.scss”; 从“/invoice_filter”导入发票筛选器; 从“/invoice_table”导入发票表; 从'@/context/invo
useffect()
中为if
提供了等待获取数据的条件。invoice&&invoice['data']
像这样我的期望是
setMoney()
会起作用。但它只是传递这个函数发票
是从商店提取的数据。这是视图组件。
import React,{useContext,useffect,useState}来自'React';
导入“/invoice.scss”;
从“/invoice_filter”导入发票筛选器;
从“/invoice_table”导入发票表;
从'@/context/invoice_dataStore'导入{invoiceContext};
功能发票(道具){
const{invoice,getInvoiceInitialData}=useContext(invoiceContext);
const[应收账款,SetRecessive]=使用状态(0);
const[pending,setPending]=useState(0);
useffect(()=>{
如果(发票和发票[‘数据’]){
设置货币();
}
}, []);
函数setMoney(){
如果(发票和发票[‘数据’]){
const infoSt=invoice['data'].map((info)=>info);
infoSt.forEach((info)=>{
开关(信息状态){
案例100://应收账款
设置应收账款((前期)=>前期+信息金额);
打破
案件200://未决
setPending((上一个)=>上一个+信息金额);
打破
违约:
抛出新错误(“未知命令”);
}
});
}
}
返回(
${应收}
${pending}
);
}
出口默认发票;
- 已编辑
在使用
之前,我只使用useffect()
来实现这一点if
我仍然不明白为什么这不起作用李>
if(发票和发票['data']){
设置货币();
}
因为这起作用了。let showTable;
如果(发票和发票[‘数据’]){
showTable=发票['data'].地图((信息)=>
{info.title})
}
}
返回(
{可显示}
)
useffect
和空依赖项数组仅在初始组件装载后调用。执行useffect
时,上下文中的invoice
数据很可能未填充
要解决此问题,必须将invoice
作为依赖项传递给useffect
钩子,以便在函数值更改时执行该函数
useEffect(() => {
if (invoice && invoice['data']) {
setMoney();
}
}, [invoice]);
我们无法查看您是如何发送请求的。请考虑添加更多细节添加更多细节!