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};
}