# useChannelMembersState

Subscribes to and returns `channel.state.members` for a channel.

## Best Practices

- Use this hook for member-aware preview UI such as direct-chat detection.
- Expect updates from member and user presence events.
- Avoid expensive transforms on every render for large channels.
- Handle optional return values when channel may be undefined.
- Prefer derived selectors for specific data when possible.

## Usage

```tsx
import { useChannelMembersState } from "stream-chat-react-native";

const members = useChannelMembersState(channel);
const memberCount = Object.keys(members ?? {}).length;
```

## Parameters

| Name    | Type      | Required | Description                     |
| ------- | --------- | -------- | ------------------------------- |
| channel | `Channel` | No       | Channel whose members are read. |

## Returns

| Type                                                   | Description                  |
| ------------------------------------------------------ | ---------------------------- |
| `Record<string, ChannelMemberResponse>` \| `undefined` | Current channel members map. |


---

This page was last updated at 2026-04-17T17:33:46.372Z.

For the most recent version of this documentation, visit [https://getstream.io/chat/docs/sdk/react-native/hooks/channel-list/use-channel-members-state/](https://getstream.io/chat/docs/sdk/react-native/hooks/channel-list/use-channel-members-state/).