# Thread

Renders thread replies for a message, with an input for new replies. Internally uses `MessageList` and `MessageComposer`.

## Best Practices

- Render `Thread` within `Channel` and pass `thread`/`threadList` correctly.
- Use `closeThreadOnDismount` to keep channel state in sync.
- Avoid heavy customization; override `MessageList`/`MessageComposer` only when needed.
- Keep thread input focused only when appropriate (`autoFocus`).
- Use `reloadThread`/`loadMoreThread` instead of manual pagination.

## General Usage

```tsx {8}
import {
  OverlayProvider,
  Chat,
  Channel,
  Thread,
} from "stream-chat-react-native";

const App = () => {
  return (
    <OverlayProvider>
      <Chat client={client}>
        <Channel channel={channel} thread={message} threadList>
          <Thread />
        </Channel>
      </Chat>
    </OverlayProvider>
  );
};
```

## Props

| Prop                              | Description                                                                                                                                                                                                                                                                | Type                                                        |
| --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| `additionalMessageComposerProps`  | Additional [props](/chat/docs/sdk/react-native/ui-components/message-composer#props/) for underlying `MessageComposer` component.                                                                                                                                          | `object`                                                    |
| `additionalMessageListProps`      | Additional [props](/chat/docs/sdk/react-native/ui-components/message-list#props/) for underlying `MessageList` component.                                                                                                                                                  | `object`                                                    |
| `additionalMessageFlashListProps` | Additional [props](/chat/docs/sdk/react-native/ui-components/experimental/message-flash-list/#props/) for underlying `MessageFlashList` component.                                                                                                                         | `object`                                                    |
| `autoFocus`                       | When true, the input auto-focuses on mount. Defaults to `true`.                                                                                                                                                                                                            | `boolean`                                                   |
| `client`                          | Stream Chat client instance.                                                                                                                                                                                                                                               | [`StreamChat`](https://github.com/GetStream/stream-chat-js) |
| `closeThreadOnDismount`           | Closes thread on dismount. Defaults to `true`.                                                                                                                                                                                                                             | `boolean`                                                   |
| `disabled`                        | When true, the underlying input box will be disabled. Defaults to `false`.                                                                                                                                                                                                 | `boolean`                                                   |
| `onThreadDismount`                | Called when `Thread` unmounts.                                                                                                                                                                                                                                             | `function`                                                  |
| `closeThread`                     | Unsets the thread and thread messages in the Channel state.                                                                                                                                                                                                                | `function`                                                  |
| `loadMoreThread`                  | Loads more messages for the thread. Returns a promise.                                                                                                                                                                                                                     | `() => Promise<void>`                                       |
| `parentMessagePreventPress`       | Boolean to enable/disable parent message press. Defaults to `true`.                                                                                                                                                                                                        | `boolean`                                                   |
| `reloadThread`                    | Reloads the thread and thread messages.                                                                                                                                                                                                                                    | `function`                                                  |
| `thread`                          | Can be a `LocalMessage` or [`ThreadType`](https://github.com/GetStream/stream-chat-react-native/blob/develop/package/src/contexts/threadContext/ThreadContext.tsx). Setting it indicates a thread is open. Set `thread` on all `Channel` components when a thread is open. | `object`                                                    |
| `threadInstance`                  | Instance of [`Thread`](https://github.com/GetStream/stream-chat-js/blob/master/src/thread.ts) used to read more data or pass to `onThreadSelect`.                                                                                                                          | `Thread`                                                    |

## UI Component Props

| Prop              | Description                                                                                                                      | Type            |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------- | --------------- |
| `MessageList`     | Custom message list component. Defaults to [`MessageList`](/chat/docs/sdk/react-native/ui-components/message-list/).             | `ComponentType` |
| `MessageComposer` | Custom message composer component. Defaults to [`MessageComposer`](/chat/docs/sdk/react-native/ui-components/message-composer/). | `ComponentType` |


---

This page was last updated at 2026-05-13T13:38:50.354Z.

For the most recent version of this documentation, visit [https://getstream.io/chat/docs/sdk/react-native/ui-components/thread/](https://getstream.io/chat/docs/sdk/react-native/ui-components/thread/).