反应管理员。如何在单独的页面上显示用户 activity

React-admin. How to show on separate page user activity

我有什么

我的项目中几乎没有资源 -> 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"/>

我需要的

在编辑和显示用户页面上放置按钮 - "Activity",单击它我需要转到另一个页面并在那里显示用户 Activity 的 table 根据user_id。 我在想,为了显示来自 user_activity 资源的数据,我可以使用或新的 useQuery 挂钩,但它应该以某种方式获得 user_id 作为参数,那么如何传递它呢?据我所知,它也很有趣,它显示了由来自不同资源的密钥连接的数据,但它显示在同一组件上,我需要它在单独的页面上。

怎么做?

您认为创建页面的最佳方式是什么?使用什么组件可以从另一个页面显示 user_activity by user_id?

你可以使用 "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>

不要忘记将 "activity" 添加到

中的资源中

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

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