Browse Source

Improve Event handler Error message (#2019)

Elijah Ahianyo 1 year ago
parent
commit
b8f0674556
2 changed files with 8 additions and 3 deletions
  1. 6 1
      reflex/components/component.py
  2. 2 2
      reflex/event.py

+ 6 - 1
reflex/components/component.py

@@ -264,7 +264,12 @@ class Component(Base, ABC):
             for v in value:
                 if isinstance(v, EventHandler):
                     # Call the event handler to get the event.
-                    event = call_event_handler(v, arg_spec)  # type: ignore
+                    try:
+                        event = call_event_handler(v, arg_spec)  # type: ignore
+                    except ValueError as err:
+                        raise ValueError(
+                            f" {err} defined in the `{type(self).__name__}` component"
+                        ) from err
 
                     # Add the event to the chain.
                     events.append(event)

+ 2 - 2
reflex/event.py

@@ -479,8 +479,8 @@ def call_event_handler(
         else:
             source = inspect.getsource(arg_spec)  # type: ignore
             raise ValueError(
-                f"number of arguments in {event_handler.fn.__name__} "
-                f"doesn't match the definition '{source.strip().strip(',')}'"
+                f"number of arguments in {event_handler.fn.__qualname__} "
+                f"doesn't match the definition of the event trigger '{source.strip().strip(',')}'"
             )
     else:
         console.deprecate(