Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在useEffect中调度异步操作时的无限循环_Javascript_Reactjs_Use Effect - Fatal编程技术网

Javascript 在useEffect中调度异步操作时的无限循环

Javascript 在useEffect中调度异步操作时的无限循环,javascript,reactjs,use-effect,Javascript,Reactjs,Use Effect,在代码中包含useEffect中的分派之后,我经历了一个无限循环。我已经检查了许多其他类似的问题,但我似乎没有解决这个问题 我的组件看起来是这样的: import React,{useffect}来自“React”; 从“@material ui/core/Table”导入表格; 从“@material ui/core/TableBody”导入表体; 从“@material ui/core/TableCell”导入TableCell; 从“@material ui/core/TableCont

在代码中包含useEffect中的分派之后,我经历了一个无限循环。我已经检查了许多其他类似的问题,但我似乎没有解决这个问题 我的组件看起来是这样的:

import React,{useffect}来自“React”;
从“@material ui/core/Table”导入表格;
从“@material ui/core/TableBody”导入表体;
从“@material ui/core/TableCell”导入TableCell;
从“@material ui/core/TableContainer”导入TableContainer;
从“@material ui/core/TableHead”导入表头;
从“@material ui/core/TableRow”导入TableRow;
从'@material ui/core/styles'导入{makeStyles};
从“@material ui/core”导入{排版、纸张、网格};
从'react redux'导入{useDispatch,useSelector};
从“../../action/apirequest”导入{fetchInvestment};
const useStyles=makeStyles({
表:{
最小宽度:650,
},
});
const tableHeading=['Title','Amount','Start Date','End Date','Type'];
const displayedResult=[{title:'mike',amount:'startDate',endDate:'mike',type:'mike'},{title:'mike',amount:'startDate',endDate:'mike',type:'mike'}];
const tableDataKey=['title','amount','startDate','endDate','type'];
常量投资表=(道具)=>{
const classes=useStyles();
const dispatch=usedpatch();
useffect(()=>dispatch(fetchInvestment());
const tableData=useSelector(state=>state).dataReducer.dataArray;
console.log('data',tableData);
报税表(
{props.heading}
序列号
{tableHeading.map(item=>({item}))}
选择权
{displayedResult.map((行,i)=>(
{i+1}
{tableDataKey.map((单元格)=>({row[cell]}))}
))}
)
}

导出默认投资表您不正确地使用了
useffect
。您必须为它提供一个依赖项,在您的情况下,如果您希望它只运行一次,请给它一个空数组,如下所示:

   useEffect(()=>{
    dispatch(fetchInvestment())
    },[])
这本质上意味着您的useEffect没有任何要查找的依赖项,因此将只运行一次。如果您希望它根据某些状态的变化而变化,那么您可以在依赖项数组中传递该状态