# PollResults

A component used to render a list of all of the votes per option that a `Poll` has. Each option will display the 5 most recent votes. If an option has more than 5 votes it will add a button at the bottom that opens the [`PollOptionFullResults`](/chat/docs/sdk/react-native/v8/ui-components/poll-option-full-results/) Modal. Needs to be structured inside a [`Channel` component](/chat/docs/sdk/react-native/v8/core-components/channel/).

It will render its default `PollResultsContent`, which can be overridden for custom UI. Its children have access to the entire `poll` state through the `usePollState` hook.

## Best Practices

- Render inside `Channel` to access poll context and state.
- Keep results UI scannable; avoid showing too many voters inline.
- Use the full results modal for large vote lists to reduce clutter.
- Use `PollResultsContent` for UI changes without rewriting poll logic.
- Respect pagination and loading states when showing results.

## General Usage

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

const App = () => {
  return (
    <OverlayProvider>
      <Chat client={client}>
        <Channel channel={channel}>
          <PollResults message={message} poll={poll} {...otherOptionalProps} />
        </Channel>
      </Chat>
    </OverlayProvider>
  );
};
```

## Props

### message

Message object.

| Type           |
| -------------- |
| `Message` type |


### `poll` \*

An instance of the [`Poll` class](https://github.com/GetStream/stream-chat-js/blob/master/src/poll.ts) containing reactive state.

It is used by the underlying `usePollContext`, `usePollStateStore` and `usePollState` hooks to provide us with the reactive `Poll` state.

<admonition type="note">

If you need the `Poll` instance you may get it from `client.polls.fromState(pollId)`.

</admonition>

| Type   |
| ------ |
| object |


### `additionalScrollViewProps`

A prop used to override the underlying [`ScrollView`](https://reactnative.dev/docs/scrollview#props) props of the `PollResults`.

```tsx
const flatListProps = { bounces: true };

<PollResults additionalFlatListProps={flatListProps} />;
```

| Type   |
| ------ |
| object |

### `PollResultsContent`

A `Component` prop used to render the content of the `PollResults` component.

The component has full access to the entire `Poll` reactive state through the `usePollState` hook.

| Type          | Default                                                                                                                                |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| ComponentType | [`PollResultsContent`](https://github.com/GetStream/stream-chat-react-native/v8/blob/main/package/src/components/Poll/PollResults.tsx) |

#### Usage

```tsx
import { Text } from "react-native";
import {
  OverlayProvider,
  Chat,
  Channel,
  PollResults,
  usePollState,
} from "stream-chat-react-native";

const MyPollResultsContent = () => {
  const { options } = usePollState();
  return options.map((option) => <Text>{option.id}</Text>);
};

const App = () => {
  return (
    <OverlayProvider>
      <Chat client={client}>
        <Channel channel={channel}>
          <PollResults
            message={message}
            poll={poll}
            PollResultsContent={MyPollResultsContent}
          />
        </Channel>
      </Chat>
    </OverlayProvider>
  );
};
```


---

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

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