function App() {
const [a, setA] = createSignal<number>(1);
const [b, setB] = createSignal<number>(1);
// ✅ reactive
const contextThunk = () => {
return { a: a(), b: b() };
};
// ✅ reactive
const contextMemo = createMemo(() => {
return { a: a(), b: b() };
});
return (
<div>
<button type="button" onClick={() => setA(a() + 1)}>
a++
</button>
<button type="button" onClick={() => setB(b() + 1)}>
b++
</button>
// This is reactive because its contextMemo (as a function) instead of contextMemo() (as a value)
<AppFunctionContext.Provider value={contextMemo}> // inside `const context = useContext(AppFunctionContext)` and `const a = context().a`
<ChildWithFunctionContext />
</AppFunctionContext.Provider>
</div>
);
function App() {
const [a, setA] = createSignal<number>(1);
const [b, setB] = createSignal<number>(1);
// ✅ reactive
const contextThunk = () => {
return { a: a(), b: b() };
};
// ✅ reactive
const contextMemo = createMemo(() => {
return { a: a(), b: b() };
});
return (
<div>
<button type="button" onClick={() => setA(a() + 1)}>
a++
</button>
<button type="button" onClick={() => setB(b() + 1)}>
b++
</button>
// This is reactive because its contextMemo (as a function) instead of contextMemo() (as a value)
<AppFunctionContext.Provider value={contextMemo}> // inside `const context = useContext(AppFunctionContext)` and `const a = context().a`
<ChildWithFunctionContext />
</AppFunctionContext.Provider>
</div>
);