Admin-on-rest:根据不同的数据进行过滤

Admin-on-rest: Filter based on different data

我有一个 REST 端点来获取一组 'groups',其中每个组都包含一个名称和一个 ID。我已经成功地将其实现为 admin-on-rest 中的资源。

现在我有另一个用于获取用户的 REST 端点,但我只能获取特定组的用户,而不是一般的所有用户。 REST 端点要求我提供组 ID 作为 url 的一部分。但是在用户对象中没有 groupId,因为引用是相反的,组 -> 用户。

我想要的是在用户列表视图的过滤器下拉列表中显示组的 'name',然后使用组的 'id' 按顺序传递给其余客户端加载相应的用户。

我已经在我的restclient中实现调用如下:

    case 'users': {
        switch(type) {
            case 'GET_LIST': {
                return getUsers(token, params.filter.id)
                    .then(response => ({ data: response.data, total: response.data.length }));
            }
        }
        break;
    }

并且在我的用户资源组件的列表视图中,我实现了这样的过滤器:

const UsersFilter = ({ ...props }) => (
    <Filter {...props}>
        <ReferenceInput source="id" reference="groups">
            <SelectInput optionText="name" />
        </ReferenceInput>
    </Filter>
);

现在,这不起作用。在过滤器中,我只有一个名为 'Id' 的条目,并且有一条错误消息说 "cannot find targetusergroup with id==undefined".

我能做什么?

对不起,

它确实有用,但我太笨了,不会使用用户界面。我不知道,我必须先 select 一个过滤器,然后才能使用它。而且我也忘了给我的组过滤器一个标签,这就是为什么它只在过滤器菜单中说 'id'。

现在可以了。