Skip to content

Commit cb02b1b

Browse files
committed
improve StaticEventHandler docs
1 parent 5f81f15 commit cb02b1b

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

src/idom/testing.py

+24
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,30 @@ def MyComponent():
243243
244244
# gives the target ID for onClick where from the last render of MyComponent
245245
static_handlers.target
246+
247+
If you need to capture event handlers from different instances of a component
248+
the you should create multiple ``StaticEventHandler`` instances.
249+
250+
.. code-block::
251+
252+
static_handlers_by_key = {
253+
"first": StaticEventHandler(),
254+
"second": StaticEventHandler(),
255+
}
256+
257+
@idom.component
258+
def Parent():
259+
return idom.html.div(Child(key="first"), Child(key="second"))
260+
261+
@idom.component
262+
def Child(key):
263+
state, set_state = idom.hooks.use_state(0)
264+
handler = static_handlers_by_key[key].use(lambda event: set_state(state + 1))
265+
return idom.html.button({"onClick": handler}, "Click me!")
266+
267+
# grab the individual targets for each instance above
268+
first_target = static_handlers_by_key["first"].target
269+
second_target = static_handlers_by_key["second"].target
246270
"""
247271

248272
def __init__(self) -> None:

0 commit comments

Comments
 (0)