diff --git a/zh-cn/application-dev/reference/apis-arkui/js-apis-arkui-builderNode.md b/zh-cn/application-dev/reference/apis-arkui/js-apis-arkui-builderNode.md index 947bf22402874a941ef27c78f85a3b481a58f7b7..30245f6ed5442742d00c88f7eb70089e916a27bc 100644 --- a/zh-cn/application-dev/reference/apis-arkui/js-apis-arkui-builderNode.md +++ b/zh-cn/application-dev/reference/apis-arkui/js-apis-arkui-builderNode.md @@ -1495,35 +1495,43 @@ struct MyComponent { ### 示例4(BuilderNode共享localStorage) 该示例演示了如何在BuilderNode通过build方法传入外部localStorage,此时挂载在BuilderNode的所有自定义组件共享该localStorage。 ```ts +import { NodeController, BuilderNode, FrameNode, UIContext } from "@kit.ArkUI"; + +class Params { + text: string = "" + constructor(text: string) { + this.text = text; + } +} + let globalBuilderNode: BuilderNode<[Params]> | null = null; @Builder function buildText(params: Params) { Column() { - Text(params.text) - .fontSize(50) - .fontWeight(FontWeight.Bold) - .margin({bottom: 36}) - Test() + Text('BuildNodeContentArea') + .fontSize(25) + CustomComp() } } -let localStorage: LocalStorage = new LocalStorage(); -localStorage.setOrCreate('PropA', 'PropA'); class TextNodeController extends NodeController { private rootNode: FrameNode | null = null; - makeNode(context: UIContext): FrameNode | null { this.rootNode = new FrameNode(context); if (globalBuilderNode === null) { globalBuilderNode = new BuilderNode(context); - globalBuilderNode.build(wrapBuilder<[Params]>(buildText), new Params('builder node text'), { localStorage: localStorage }) + globalBuilderNode.build(wrapBuilder<[Params]>(buildText), new Params('builder node text'), { localStorage: localStorage1 }) } this.rootNode.appendChild(globalBuilderNode.getFrameNode()); return this.rootNode; } } -@Entry(localStorage) + +let localStorage1: LocalStorage = new LocalStorage(); +localStorage1.setOrCreate('PropA', 'PropA'); + +@Entry(localStorage1) @Component struct Index { private controller: TextNodeController = new TextNodeController(); @@ -1533,11 +1541,22 @@ struct Index { Column() { Text(this.PropA) NodeContainer(this.controller) + Button('changeLocalstorage').onClick(()=>{ + localStorage1.set('PropA','AfterChange') + }) + } + } + } +} +@Component +struct CustomComp { + @LocalStorageLink('PropA') PropA: string = 'Hello World'; + build() { + Row() { + Column() { + Text(this.PropA) } - .width('100%') - .height('100%') } - .height('100%') } } ```