Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions reflex/compiler/templates.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from reflex.constants import Hooks
from reflex.constants.state import CAMEL_CASE_MEMO_MARKER
from reflex.utils.format import format_state_name, json_dumps
from reflex.vars.base import VarData
from reflex.vars.base import Var, VarData

if TYPE_CHECKING:
from reflex.compiler.utils import _ImportDict
Expand Down Expand Up @@ -52,9 +52,16 @@ def _sort_hooks(

class _RenderUtils:
@staticmethod
def render(component: Mapping[str, Any] | str) -> str:
def render(component: Mapping[str, Any] | str | Var | Any) -> str:

# If component is a Var, render it as raw JS and stop.

if isinstance(component, Var):
return str(component)

if isinstance(component, str):
return component or "null"

if "iterable" in component:
return _RenderUtils.render_iterable_tag(component)
if "match_cases" in component:
Expand Down
7 changes: 7 additions & 0 deletions tests/units/vars/test_var_render.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from reflex.compiler.templates import _RenderUtils
from reflex.vars.base import Var


def test_var_render_raw_js():
v = Var("_event?.formData")
assert _RenderUtils.render(v) == "_event?.formData"