> For AI agents: the complete documentation index is at [llms.txt](https://reflex.dev/docs/llms.txt). Markdown versions are available by appending `.md` or sending `Accept: text/markdown`.

# State

`reflex.state.State`

The app Base State.

## Fields

| Prop | Description |
| --- | --- |
| `parent_state: Optional[BaseState]` |  |
| `substates: dict[str, BaseState]` |  |
| `dirty_vars: set[str]` |  |
| `dirty_substates: set[str]` |  |
| `router_data: dict[str, Any]` |  |
| `router: Field[RouterData]` |  |
| `is_hydrated: bool` |  |

## Methods

| Signature | Description |
| --- | --- |
| `hydrate(*args: Any, **kwargs: Any) -> EventSpec` | An event handler responds to an event to update the state.  Attributes:     fn: The function to call in response to the event.     state: The state this EventHandler is directly attached to, if any. |
| `set_is_hydrated(*args: Any, **kwargs: Any) -> EventSpec` | An event handler responds to an event to update the state.  Attributes:     fn: The function to call in response to the event.     state: The state this EventHandler is directly attached to, if any. |
| `setvar(*args: Any) -> EventSpec` | A special event handler to wrap setvar functionality. |
