Get group member list by page
Query members of a specified group by page and filter by member role using the OpenIM React Native SDK.
Query the member list of a designated group by page, with optional role-based filtering:
const members = await OpenIMSDK.getGroupMemberList({
groupID: 'group-001',
filter: GroupMemberFilter.All,
offset: 0,
count: 50,
});Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
groupID | string | Yes | Target group ID. |
filter | GroupMemberFilter | Yes | Filter criteria for member roles. |
offset | number | Yes | Pagination offset; pass 0 for the first page. |
count | number | Yes | Number of members to retrieve in this batch. |
Supported GroupMemberFilter values:
| Enum value | Value | Description |
|---|---|---|
GroupMemberFilter.All | 0 | All members. |
GroupMemberFilter.Owner | 1 | Group owner only. |
GroupMemberFilter.Admin | 2 | Group administrators only. |
GroupMemberFilter.Normal | 3 | Regular members only. |
GroupMemberFilter.AdminAndNormal | 4 | Administrators and regular members. |
GroupMemberFilter.AdminAndOwner | 5 | Administrators and the group owner. |
To retrieve subsequent pages, set offset to the cumulative count of members already retrieved.
Return value
A resolved Promise returns GroupMemberItem[] for the current page. If the returned array contains fewer items than count, the end of the member list has been reached. When caching or updating the member list, use the composite key groupID:userID as the unique identifier. For field definitions, see Group overview.
Listen for group member changes
When a member joins, leaves, or updates profile information, the SDK emits OnGroupMemberAdded, OnGroupMemberDeleted, and OnGroupMemberInfoChanged events respectively. Reconcile incremental updates using the groupID:userID composite key:
const handleMemberAdded = (member: GroupMemberItem) => {
// Append member to the local cache keyed by member.groupID and member.userID
};
const handleMemberDeleted = (member: GroupMemberItem) => {
// Remove member from the local cache keyed by member.groupID and member.userID
};
const handleMemberChanged = (member: GroupMemberItem) => {
// Update member attributes in the local cache keyed by member.groupID and member.userID
};
// Register listeners
OpenIMSDK.on(OpenIMEvent.OnGroupMemberAdded, handleMemberAdded);
OpenIMSDK.on(OpenIMEvent.OnGroupMemberDeleted, handleMemberDeleted);
OpenIMSDK.on(OpenIMEvent.OnGroupMemberInfoChanged, handleMemberChanged);
// Clean up listeners when unmounting or switching users
OpenIMSDK.off(OpenIMEvent.OnGroupMemberAdded, handleMemberAdded);
OpenIMSDK.off(OpenIMEvent.OnGroupMemberDeleted, handleMemberDeleted);
OpenIMSDK.off(OpenIMEvent.OnGroupMemberInfoChanged, handleMemberChanged);Always pass the identical function references to OpenIMSDK.off() when unmounting screens, switching accounts, or logging out.
Was this page helpful?