【问题标题】:React-admin. How to show on separate page user activity反应管理员。如何在单独的页面上显示用户活动
【发布时间】:2019-11-19 12:07:26
【问题描述】:

我有什么。

我的项目中资源很少 -> usersuser_activity。 获取 user_activity 的 Edpoint 如下所示:

curl base_url/rpc/user_activity?id=user_id -H "Content-Type: application/json" -X GET

一些 React 管理代码

<Resource
   name="user"
   options={{ label: 'Users' }}
   list={ UsersList }
   create={ UsersCreate}
   edit={ UsersEdit }
   show={ UsersShow }
/>
<Resource name="user_activity"/>

我需要什么。

在编辑和显示用户页面上放置按钮 - “活动”,单击我需要转到另一个页面并根据 user_id 显示用户活动表。 我在想,为了显示来自 user_activity 资源的数据,我可以使用或新的 useQuery 钩子,但它应该以某种方式将 user_id 作为参数,那么如何传递它?我也知道它显示了来自不同资源的键连接的数据,但它显示在同一个组件上,我需要它在单独的页面上。

怎么做?

您认为创建页面的最佳方式是什么以及使用什么组件在另一个页面中通过 user_id 显示 user_activity?

【问题讨论】:

    标签: reactjs react-admin


    【解决方案1】:

    你可以使用“ReferenceManyField”吗?

    我使用标签而不是新页面来做一些非常相似的事情。 例如:

    <TabbedShowLayout>
                <Tab label="activity" path="activity">
                    <ReferenceManyField
                        addLabel={false}
                        reference="activity"
                        target="user_id"
                        sort={{ field: 'Date', order: 'DESC' }}
                    >
                        <Datagrid>
                            <DateField source="Date" label="Date" showTime />
                            <TextField source="Type" label="Type" />
                            <TextField source="Result" label="Result" />
                        </Datagrid>
                    </ReferenceManyField>
                </Tab>
    </TabbedShowLayout>
    

    别忘了在你的资源中添加“活动”

    我的数据提供者将其翻译成:

    http://localhost:3001/activity?filter=%7B%22user_id%22%3A%XXXXX%22%7D&range=%5B0%2C24%5D&sort=%5B%22Date%22%2C%22DESC%22%5D

    【讨论】:

    • 谢谢 我正在考虑这个问题,但只是想知道是否有办法使用另一个页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 2015-11-25
    • 1970-01-01
    • 2018-08-14
    • 1970-01-01
    相关资源
    最近更新 更多