【发布时间】:2020-12-14 11:04:16
【问题描述】:
我有一个带有文章的简单博客,当用户点击编辑按钮时,他会得到一个充满文章数据的表单——标题、描述、正文和标签。当我得到“id”时,我使用 useEffect 获取数据并填写表格。如果没有“id”表格应该是空白的。这是我的useEffect:
useEffect(() => {
if (id) {
isLoading = true;
return props.onLoad(userService.articles.get(id));
}
props.onLoad(null);
}, [id]
);
但是当我重新加载页面 id 并没有改变,并且 func userService.articles.get(id) 没有运行时,所有数据都消失了。我需要建议如何解决它?可能是我需要使用其他部门来实现 useEffect,但现在我不知道我可以使用哪些部门来使用 exept id。
更新: 谢谢大家的帮助。我想要的只是:
- 当编辑页面加载/重新加载和“id”存在时 -> 填写表单字段
- 当“id”不存在时 -> 空白表单字段
现在,当我重新加载编辑页面时,我得到了 id - 但所有数据都消失了,我得到了空白表单:(
这里是完整代码:codesandbox
附言我使用免费的 API - 因此您可以在几秒钟内使用任何想象的电子邮件、用户名和密码创建用户。您不需要邮件确认。
【问题讨论】:
-
我想你可能需要
console.log(id)看看是否有任何变化:> 但是当我重新加载页面 id 时没有改变,并且 func userService.articles.get(id) 没有运行 -
props.onLoad 期望接收什么作为参数,
array可能? -
@NemanjaLazarevic,props.onLoad 工作正常,我在控制台中获得了所有需要的数据。但是重新加载页面时表单字段为空白。
-
您应该发布更多代码,我们不知道
id来自哪里。当没有id来获取articles时,看到一个空表单是预期的行为吗? -
ty,发布更新,添加了完整代码的链接。
标签: javascript reactjs react-hooks