如何将记录更新从子组件传播到父组件

时间:2017-08-11 04:40:37

标签: reactjs admin-on-rest

我使用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;除非用户刷新页面或导航离开组件。

1 个答案:

答案 0 :(得分:0)

AOR使用乐观渲染。因此,在REST客户端实际发送回调之前,实际显示了新记录。错误案例分开处理。

对Redux State的更新会导致订阅该状态字段的所有组件的更新。没有什么需要手动完成。这就是Redux的工作方式。