javascript - 编辑表单在提交时不会更改 - 仅在硬刷新时
问题描述
所以在这个反应组件上,我有一个编辑表单。useEffect
如下:
useEffect(() => {
if(success) {
history.push('/home/admin/tasks')
} else {
if(!task.title || task._id !== taskId) {
dispatch(getTaskDetails(taskId))
} else {
titleRef.current!.value = task.title;
descRef.current!.value = task.description;
valueRef.current!.value = task.value;
durationRef.current!.value = task.duration;
}
}
},[dispatch, task, taskId, history, successDelete, success])
所以这里发生了很多事情。
- 如果表单被提交,
success
则变为 true 并触发使用效果。 - 如果
success
为真,则重定向回显示所有“任务”列表的页面。 - 如果
success
不正确,则获取任务详细信息并再次在输入中显示它们。
当我重定向回他的“AllTasks”页面时,我有一个useEffect
重置success
,所以它不再是真的。
正在发生的错误是,当我执行所有这些操作并单击返回刚刚更新的“任务”时,这些字段不会使用新数据进行更新。只有当我在浏览器上点击刷新时它才会更新。
我从useEffect
任务编辑页面上方的 redux 商店调用它
const taskUpdate = useSelector((state: RootStateOrAny) => state.taskUpdate)
const { loading: loadingUpdate, error: errorUpdate, success } = taskUpdate
解决方案
推荐阅读
- google-sheets - util_valuesheets(A1notation) 不会自动更新(Google 表格,杰出贡献者的公式添加)
- rust - 如何通过减少生锈来获得向量的乘积?
- c# - c# wpf 只有1个文件被选中
- python - .find_element_by_css_selector 没有 soenium/webdriver
- typescript - 使用计算属性时如何设置类型?
- hive - 带有增量列的 Mysql 到 Hive
- ruby-on-rails - Rails5 如何重构 find_or_create_by
- postgresql - 通过 Terraform 在 VPC(私有 RDS)中运行 SQL 查询
- cloudflare - 在 CloudFlare 中调整 IPFS 资产的图像下载大小
- python-2.7 - 如何修复 Google App Engine dev_appserver.py:watcher_ignore_re 标志“不是 JSON 可序列化”错误?