createTap
Create a component that when rendered, initializes the tapped value with the provided callback. This is useful for accessing context provided by child components inside a parent component.
import { createTap } from "@alloy-js/core";
function createTap<T = unknown>(tapper: Tapper<T>, handler?: TapHandler<T>): Tap<T>;
Parameters
tapper |
|
handler | optional
|
Returns
Tap<T>
Example
import { type Children, computed, createTap } from "@alloy-js/core";
// context we will tap intoconst SomeContext = createContext<string>();
// a component which provides some specific contextfunction MyDeclaration(props: { children: Children }) { return <SomeContext.Provider value="Hello World"> {props.children} </SomeContext.Provider>;}
// a parent component which wants to know about the context set// by its childrenfunction MySpecialDeclaration() { const SomeContextTap = createTap(() => useContext(SomeContext));
return <> The declaration context is: {SomeContextTap.ref} <MyDeclaration> <SomeContextTap /> </MyDeclaration> </>}
@see {@link createDeclarationTap} for tapping {@link DeclarationContext}.@see {@link createMemberTap} for tapping {@link MemberDeclarationContext}.@see {@link createScopeTap} for tapping {@link OutputScope}.@see {@link createSourceFileTap} for tapping {@link SourceFileContext}.