【发布时间】:2020-08-21 04:19:37
【问题描述】:
上下文:
我正在开发vanilla React 和 React Bootstrap (no redux) 项目来管理我部门的角色。角色列表并不真正相关,但对于上下文想象:管理员、经理、培训师等。
我有一个父组件<RoleContainer key={role} role={role} /> 元素具有以下状态:
this.state = {
collapsed: true,
roleAttributes: [],
roleMembers: [],
isLoading: true,
};
在<RoleContainer /> 内部,有一个<table/> 元素,其中包含一个roleMembers.map,用于循环遍历roleMembers 并动态呈现表格行。因此,对于每个角色成员,您都会获得一个表格行。
问题:
我有一个名为<CreateMemberModal role={role} roleAttributes={roleAttributes} /> 的组件,它是<RoleContainer /> 的子组件,它允许用户POST 一个新的roleMember。
目前,我必须将POST 新的roleMember 放入数据库,然后重新加载页面,以便更改可以反映。
当我 POST 一个新用户时,是否有一种可接受的方式(不是反模式或不良做法)在没有 redux 的情况下从子 <CreateMemberModal /> 中更新 <RoleContainer /> 组件的 roleMembers 状态属性?
这将允许我只重新呈现具有新角色成员的 <RoleContainer />,而不是重新加载整个页面。
【问题讨论】:
-
你发布新角色,然后获取新角色作为响应,并提供从父组件到子组件的回调,然后在新角色保存后传递新角色(作为响应而来) ,然后在父组件中将新角色推送到角色
-
是否有任何关于如何执行此操作的文档可供您指出?当您说提供回调时,您的意思是我通过 prop 从父级向子级传递一个函数吗?
-
没错,kiranvj 的回答就是我的意思
标签: javascript reactjs jsx