2.8 KiB
2.8 KiB
import reflex as rx
State Utility Methods
The state object has several methods and attributes that return information about the current page, session, or state.
Router Attributes
The self.router
attribute has several sub-attributes that provide various information:
-
router.page
: data about the current page and routehost
: The hostname and port serving the current page (frontend).path
: The path of the current page (for dynamic pages, this will contain the slug)raw_path
: The path of the page displayed in the browser (including params and dynamic values)full_path
:path
withhost
prefixedfull_raw_path
:raw_path
withhost
prefixedparams
: Dictionary of query params associated with the request
-
router.session
: data about the current sessionclient_token
: UUID associated with the current tab's token. Each tab has a unique token.session_id
: The ID associated with the client's websocket connection. Each tab has a unique session ID.client_ip
: The IP address of the client. Many users may share the same IP address.
-
router.headers
: a selection of common headers associated with the websocket connection. These values can only change when the websocket is re-established (for example, during page refresh). All other headers are available in the dictionaryself.router_data.headers
.host
: The hostname and port serving the websocket (backend).
Example Values on this Page
class RouterState(rx.State):
pass
def router_values():
return rx.chakra.table(
headers=["Name", "Value"],
rows=[
[rx.text("router.page.host"), rx.code(RouterState.router.page.host)],
[rx.text("router.page.path"), rx.code(RouterState.router.page.path)],
[rx.text("router.page.raw_path"), rx.code(RouterState.router.page.raw_path)],
[rx.text("router.page.full_path"), rx.code(RouterState.router.page.full_path)],
[rx.text("router.page.full_raw_path"), rx.code(RouterState.router.page.full_raw_path)],
[rx.text("router.page.params"), rx.code(RouterState.router.page.params.to_string())],
[rx.text("router.session.client_token"), rx.code(RouterState.router.session.client_token)],
[rx.text("router.session.session_id"), rx.code(RouterState.router.session.session_id)],
[rx.text("router.session.client_ip"), rx.code(RouterState.router.session.client_ip)],
[rx.text("router.headers.host"), rx.code(RouterState.router.headers.host)],
[rx.text("router.headers.user_agent"), rx.code(RouterState.router.headers.user_agent)],
[rx.text("router.headers.to_string()"), rx.code(RouterState.router.headers.to_string())],
],
overflow_x="auto",
)