17 | {({ defaultValue }: Context) => (
18 | 3. {defaultValue} (grandchild)
19 | )}
20 |
21 | );
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/components/my-component/my-component.tsx:
--------------------------------------------------------------------------------
1 | import { Component, State, h } from '@stencil/core';
2 | import { createContext } from '../../utils/createContext';
3 |
4 | const { Provider, Consumer } = createContext({ defaultValue: 'first-level' });
5 |
6 | interface Context {
7 | defaultValue: string;
8 | }
9 |
10 | @Component({
11 | tag: 'my-component',
12 | })
13 | export class MyComponent {
14 | constructor() {
15 | setTimeout(() => {
16 | this.firstLevel = { defaultValue: 'first-level-updated-2sec' };
17 | }, 2000);
18 | }
19 |
20 | @State() firstLevel: Context = { defaultValue: 'first-level' };
21 |
22 | render() {
23 | return (
24 |