> 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: reflex.state.BaseState \| None` |  |
| `substates: dict[str, reflex.state.BaseState]` |  |
| `dirty_vars: set[str]` |  |
| `dirty_substates: set[str]` |  |
| `router_data: dict[str, typing.Any]` |  |
| `router: reflex_base.vars.base.Field[reflex.istate.data.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. |
