javascript - 页面刷新后反应表不重新填充
问题描述
在我的 React 页面上,我有一个 DataTable 组件,它的源是data
我所在州的一个数组。在我的useEffect
我调用一个动作来获取数据,通过它映射并为每一行定义一个对象,将它推送到一个新数组并setData
对该新数组执行操作。
它在初始加载时工作正常,但如果我单击刷新,表格为空白并且代码不会再次运行
const [data, setData] = useState([])
useEffect(() => {
dispatch(listContractors())
const newData = new Array;
contractors.map(c => {
let obj = {
action: `DELETE | EDIT`,
psa_licence_no: c.psa_licence_no,
company: c.company,
trading_as: c.trading_as,
address_1: c.address_1,
address_2: c.address_2,
address_3: c.address_3,
county: c.county,
eircode: c.eircode,
contact_f_name: c.contact_f_name,
contact_s_name: c.contact_s_name,
office_tel_no: c.office_tel_no,
mobile_tel_no: c.mobile_tel_no,
sentinel_id: c.sentinel_id,
email: c.email,
intruder: c.intruder,
cctv: c.cctv,
guard_static: c.guard_static,
arc_intruder: c.arc_intruder,
arc_cctv: c.arc_cctv,
issue_date: c.issue_date,
expiry_date: c.expiry_date,
psa_date_added: c.psa_date_added,
psa_date_updated: c.psa_date_updated,
psa_date_removed: c.psa_date_removed
}
newData.push(obj)
})
setData(newData)
}, [dispatch])
编辑:
如果我从应用程序刷新页面,则导航到另一个页面并导航回该页面,它可以工作。仅当我单击 chrome 上的刷新按钮时才会出现此问题
解决方案
您contractors
在依赖数组中缺少useEffect
useEffect(() => {
dispatch(listContractors())
const newData = new Array;
contractors.map(c => {
let obj = {
action: `DELETE | EDIT`,
psa_licence_no: c.psa_licence_no,
company: c.company,
trading_as: c.trading_as,
address_1: c.address_1,
address_2: c.address_2,
address_3: c.address_3,
county: c.county,
eircode: c.eircode,
contact_f_name: c.contact_f_name,
contact_s_name: c.contact_s_name,
office_tel_no: c.office_tel_no,
mobile_tel_no: c.mobile_tel_no,
sentinel_id: c.sentinel_id,
email: c.email,
intruder: c.intruder,
cctv: c.cctv,
guard_static: c.guard_static,
arc_intruder: c.arc_intruder,
arc_cctv: c.arc_cctv,
issue_date: c.issue_date,
expiry_date: c.expiry_date,
psa_date_added: c.psa_date_added,
psa_date_updated: c.psa_date_updated,
psa_date_removed: c.psa_date_removed
}
newData.push(obj)
})
setData(newData)
}, [dispatch, contractors])
我建议使用 eslint 来捕获此类错误。
推荐阅读
- python - 如何获取函数中使用的参数值
- python - Python 删除所有特定变量的坐标 - netcdf
- r - 分组统计测试 tidyverse
- css - Chrome 按钮上显示的字体颜色,但不是 Safari
- google-analytics - gtag 事件未在分析中注册
- apache - Extract httpd.conf from Apache2 in Docker container
- android - RxJava 运算符,如 replay(1, 1, MINUTE),但在 1 分钟后重新订阅
- javascript - 开发信用卡时间表的代码的 Javascript 问题
- c# - “已经有一个打开的 DataReader 与此命令关联,必须先关闭它。” - 但是哪里?
- angular - Angular 8+ tsconfig Path Aliases not Recognized in .spec files