reactjs - 无法在异步函数结束时更新状态
问题描述
我有一个异步函数,可以更新context
. 更新完成后,我的本地状态应该将组件从“编辑”模式更改为“查看”模式。我的问题是所有数组更新都有效,但是在添加代码行以将视图从编辑设置回视图时出现错误,我得到Error: Objects are not valid as a React child
.
我尝试创建一个外部异步函数来更改将在其余await
函数结束时触发的视图状态,但这样做时我收到相同的错误。
以下是相关代码:
const [editMode, setEditMode] = useState(false);
async function updateItem(node) {
//Update main node listing
let newNodeList = [...nodeData];
newNodeList[node.itemindex].itemname = node.itemname;
newNodeList[node.itemindex].itemid = node.itemid;
newNodeList[node.itemindex].process = node.process;
if (newNodeList[node.itemindex].process === undefined) {
newNodeList[node.itemindex].process = {};
newNodeList[node.itemindex].process.label = "";
} else {
newNodeList[node.itemindex].process.label = node.process;
}
await setNodeData(newNodeList);
//Update active node
await props.setActiveNode(newNodeList[node.itemindex]);
setEditMode(false);
}
如果我在最后注释掉setEditMode
,那么其他一切正常,但组件不会返回查看模式。
解决方案
推荐阅读
- sql - (TABLOCKX) 和 (TABLOCKX, HOLDLOCK) 的区别
- spring-boot - 无法从 docker 容器内的 Spring Boot 连接到 Redis
- java - BottomNavigation 的问题 – Android 工作室
- node.js - 按猫鼬中的孙子属性过滤
- reactjs - 在路由参数更改时渲染反应类组件
- python-3.x - 根据另一列的编码和均匀分布创建新列
- clickhouse - apache超集clickhouse时间戳格式切断时间
- geometry - 来自区域的新几何
- python - 博客的Django项目结构
- python - 读取两个由 Python Selenium 中的属性区分的相等输入