Poll

A component used to render a poll within a MessageList. Needs to be structured inside a Channel component.

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

Best Practices

  • Render polls inside Channel to access poll context and state.
  • Use PollContent overrides for UI changes without rewriting poll logic.
  • Rely on usePollState for data instead of duplicating poll state.
  • Handle missing or expired polls gracefully.
  • Keep poll UI compact to avoid list clutter.

Props

Prop Description Type
message Message object. Message type
poll * An instance of the Poll class containing reactive state. Used by usePollContext, usePollStateStore and usePollState hooks. If you need the Poll instance you may get it from client.polls.fromState(pollId). object

UI Component Overrides

The PollContent UI component is not passed as a prop on Poll. Instead, override it through the WithComponents provider higher in the tree; the component reads it from useComponentsContext().

import { WithComponents, Channel } from "stream-chat-react-native";

<WithComponents overrides={{ PollContent: MyPollContent }}>
  <Channel channel={channel}>{/* MessageList renders Poll */}</Channel>
</WithComponents>;
Override Description Type
PollContent Component used to render the content of the Poll in MessageList. Has full access to the Poll reactive state through the usePollState hook. Defaults to PollContent. Accepts sub-component props PollHeader and PollButtons. ComponentType
Add Chat to my app: getstream.io/SKILL.md

The fastest way to build with Stream. Start a new project or improve an existing one. Full CLI and documentation integration out of the box.


Ask your agent:

/stream Build me a Social App with Feeds and Moderation.
/stream Any livestream calls running?
/stream Chat React Native v9: <Your Question>