我已经使用AOR文档中描述的restClient'UPDATE'方法编写了自定义操作。当动作被触发时,我从restClient获得回调中的更新记录,以便相应地更新组件的状态。如何将记录更新从子组件传播到父组件
但父组件(在我的情况下显示视图)呢?我如何更新记录“自上而下”,以便所有AOR层次结构都能收到新的记录道具?
这是父视图:
<Show actions={<ProjectShowActions />} {...props}>
<SimpleShowLayout>
<TextField source="status"/>
</SimpleShowLayout>
</Show>
ProjectShowActions有一子组件ManageProjectButton:
const ProjectShowActions = ({ data }) => (
<CardActions>
<ManageProjectButton record={data}/>
</CardActions>
);
ManageProjectButton触发上记录的 “状态” 字段更新:
const updatedRecord = { ...record, status: 'off' };
restClient(UPDATE, 'projects', { id: record.id, data: updatedRecord });
然而Show组件中的“status”字段不会更新为“off”,除非用户刷新页面或导航离开t他组成。
[redux](http://redux.js.org/)设计模式可能会对您有所帮助。 – HyeonJunOh
谢谢,这个问题是特定于admin-on-rest,它保留了一个内部实例资源池。如果我正确理解文档,restClient应该更新此实例池,但更新是否自动反映在使用资源的组件的道具中?即还原模式被使用,但还有更多。 –