我使用restClient' UPDATE'编写了自定义操作。 AOR文档中描述的方法。当触发操作时,我从restClient获取回调中的更新记录,这样我就可以相应地更新组件的状态。
但是父组件(在我的案例中显示视图)呢?如何更新记录"自上而下"这样所有的AOR层次结构都会收到一个新的记录支柱? 这是父视图:
<Show actions={<ProjectShowActions />} {...props}>
<SimpleShowLayout>
<TextField source="status"/>
</SimpleShowLayout>
</Show>
ProjectShowActions有一个子组件ManageProjectButton:
const ProjectShowActions = ({ data }) => (
<CardActions>
<ManageProjectButton record={data}/>
</CardActions>
);
ManageProjectButton触发&#34;状态&#34;的更新记录领域:
const updatedRecord = { ...record, status: 'off' };
restClient(UPDATE, 'projects', { id: record.id, data: updatedRecord });
然而&#34;状态&#34; Show组件中的字段不会更新为&#39; off&#39;除非用户刷新页面或导航离开组件。
答案 0 :(得分:0)
AOR使用乐观渲染。因此,在REST客户端实际发送回调之前,实际显示了新记录。错误案例分开处理。
对Redux State的更新会导致订阅该状态字段的所有组件的更新。没有什么需要手动完成。这就是Redux的工作方式。