Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Reactjs 使用效果无限重招标_Reactjs_React Hooks - Fatal编程技术网

Reactjs 使用效果无限重招标

Reactjs 使用效果无限重招标,reactjs,react-hooks,Reactjs,React Hooks,我正在尝试在状态更改后重新加载组件,我是这样做的: const [items, setItems] = useState([]); useEffect(() => { console.log("I am rerendering") const displayNotebook = async () => { const reponse = await axios({// URL etc...}, }); setIte

我正在尝试在状态更改后重新加载组件,我是这样做的:

const [items, setItems] = useState([]);

useEffect(() => {
    console.log("I am rerendering")
    const displayNotebook = async () => {
    const reponse = await axios({// URL etc...},
      });
      setItems(reponse.data); // add data to the list
    };

   displayNotebook()
  
  },[items]);
我在地图上同样地传递日期

const workspaceCard = items.map((msg) => (
<WorkspaceContent
  message={msg.content}
/>));
const workspaceCard=items.map((msg)=>(
));
问题是组件处于无限重排序中,我可以使用空数组,但这不是我想要的,我尝试在每次状态更新时重新排序组件


我搜索并找到了这个答案,但对我没有帮助。

正如Gaëtan已经指出的那样,您的逻辑有一个循环:在您的效果中,您正在设置项目,但您也在指示每当项目更改时,效果应该重新运行。因此出现了循环。修复很简单,如果您不需要/不想在项目更改时重新运行效果,只需删除对项目的依赖:

useEffect(() => {
    // ...
  },[]);  // items removed

您需要修改您的逻辑,您正在触发一个效果,以便在项目更新时更新项目