# PollAllOptions

A component used to render a list of all of the options that a `Poll` has. Voting on each option on this screen is also enabled. Needs to be structured inside a [`Channel` component](/chat/docs/sdk/react-native/v8/core-components/channel/).

It will render its default `PollAllOptionsContent`, 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 actions.
- Use `PollAllOptionsContent` to customize UI while keeping poll logic intact.
- Keep option lists scannable and avoid heavy rendering.
- Use `usePollState` for reactive updates rather than custom state.
- Provide clear affordances for voting and selection.

## General Usage

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

const App = () => {
  return (
    <OverlayProvider>
      <Chat client={client}>
        <Channel channel={channel}>
          <PollAllOptions
            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 `PollAllOptions`.

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

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

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

### `PollAllOptionsContent`

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

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

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

#### Usage

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

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

const App = () => {
  return (
    <OverlayProvider>
      <Chat client={client}>
        <Channel channel={channel}>
          <PollAllOptions
            message={message}
            poll={poll}
            PollAllOptionsContent={MyPollAllOptionsContent}
          />
        </Channel>
      </Chat>
    </OverlayProvider>
  );
};
```


---

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

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