【发布时间】:2021-09-02 06:27:57
【问题描述】:
我有一个上下文对象,该对象包含我应用程序特定部分所需的所有信息。该对象包含一些数组。
数据
{
groupname: 'a',
members: {
regular: [
{ id: 1, name: 'x' },
{ id: 2, name: 'y' },
],
premium: []
}
}
我有一个可以创建新成员的表单。创建成员后,我在挂钩内有一个函数,我在其中调用 addMember 函数来添加这个新创建的成员。
function useGroup({ initialGroup: GroupType }: Props) {
const [group, setGroup] = useState<GroupType>(initialGroup)
const addMember = (member) => {
group.members.regular = [...group.members.regular, member]
setGroup(group)
}
return {
group,
addMember
}
}
我可以使用控制台日志并看到它有效地工作,但这并没有反映在我的 UI 中。刷新页面时可以看到项目。这告诉我,当我在状态对象中推送额外的项目时,UI 没有“刷新”。
我觉得好像这是因为它是对象内部的嵌套数组。我应该将成员拆分成自己的“useState”数组,还是我缺少一些东西让我的 UI 反映这个被添加?
【问题讨论】:
标签: reactjs react-hooks use-state