【发布时间】:2020-09-26 14:02:18
【问题描述】:
我有一个显示一组附加到用户的项目的数组。该数组首先检查当前用户是否在项目的库存中,然后在表格上显示为“用户名”和“借用日期”。添加功能是在模态中完成的,并假设更新表格。
问题是每次我添加、删除或更新时,表根本不会更新。此表也是另一个表的扩展组件(react-data-table-component)
这是我的表的useState和useEffect:
const InventoryTable= ({
selectedUser,
items,
getItems,
getUsers
}) => {
useEffect(() => {
getItems();
getUsers();
}, []);
const [data, setData] = useState([]);
useEffect(() => {
let data= [];
data= items?.filter((item) =>
item?.users.some(
(user) => parseInt(user?.id) === parseInt(selectedUser?._id)
)
);
setData(data);
}, []);
注意:selectedUser,是主表中被选中的用户,这个当前表是为了显示附加到它的itms。
如果我在setData(data); }, []); 上添加data,它会崩溃。
在依赖数组上添加数据、selectedUser 和 item 会不停地加载它,从而导致页面崩溃
【问题讨论】:
-
我们需要更多信息,例如错误是什么,可能不相关,但您为什么在变量末尾使用问号,例如:items?、selectedUser?、item?
-
完全没有错误。它成功添加,但不刷新表格
-
使用“?”在变量的末尾是可选链接运算符有条件地分配而不会遇到异常。好吧,我刚刚学到了一些我不知道的东西。
-
useState({}) 包含一个对象,可能使用数组设置 useState([])
标签: javascript arrays reactjs react-redux react-hooks