Javascript 为什么useEffect钩子不能在上下文中使用状态变量?

Javascript 为什么useEffect钩子不能在上下文中使用状态变量?,javascript,reactjs,Javascript,Reactjs,我的密码是 我希望应该显示数组testingData的内容 但是,它没有显示出来 当我移除useffect钩子时,它会工作 您能告诉我为什么以及如何修复它吗?在react中,组件仅在状态或属性发生任何更改时才会渲染。在代码库中,行列表是一个变量,而不是一个状态。如果您将其转换为状态,它应该可以工作 import React, { useContext, useEffect, useState } from "react"; import WebContext from &qu

我的密码是

我希望应该显示数组
testingData
的内容

但是,它没有显示出来

当我移除
useffect
钩子时,它会工作


您能告诉我为什么以及如何修复它吗?

在react中,组件仅在状态或属性发生任何更改时才会渲染。在代码库中,行列表是一个变量,而不是一个状态。如果您将其转换为状态,它应该可以工作

import React, { useContext, useEffect, useState } from "react";
import WebContext from "./WebContext";
export default function QQTableBody(props) {
  let { testingData, setTestingData } = useContext(WebContext);
  const [rowList, setRowList] = useState([]);
  // let rowList=[];
  useEffect(() => {
    const list = [];
    testingData.forEach(data => {
      list.push(
        <tr>
         <td>{data}</td>
        </tr>
     );
   });
    setRowList(list);
   }, [testingData]);
 
   return <tbody>{rowList}</tbody>;
}
import React,{useContext,useffect,useState}来自“React”;
从“/WebContext”导入WebContext;
导出默认函数QQTableBody(道具){
让{testingData,setTestingData}=useContext(WebContext);
const[rowList,setRowList]=useState([]);
//让rowList=[];
useffect(()=>{
常量列表=[];
testingData.forEach(数据=>{
list.push(
{data}
);
});
setRowList(列表);
},[测试数据];
返回{rowList};
}