element_setData
Update rendering data for custom components in WeChat Mini Programs using ID selectors to modify component state and trigger UI updates.
Instructions
设置组件实例渲染数据,仅自定义组件可以使用。需要 automator 0.6.0 和基础库 2.9.0 及以上版本。使用 ID 选择器(如 #my-component)定位自定义组件。
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| connection | No | ||
| selector | Yes | ||
| innerSelector | No | ||
| data | Yes |
Implementation Reference
- src/tools/element.ts:209-235 (handler)Full definition of the element_setData tool, including name, description, parameters schema reference, and execute handler that resolves the element and calls setData on it.function createSetElementDataTool(manager: WeappAutomatorManager): AnyTool { return { name: "element_setData", description: "设置组件实例渲染数据,仅自定义组件可以使用。需要 automator 0.6.0 和基础库 2.9.0 及以上版本。使用 ID 选择器(如 #my-component)定位自定义组件。", parameters: setElementDataParameters, execute: async (rawArgs, context: ToolContext) => { const args = setElementDataParameters.parse(rawArgs ?? {}); return manager.withPage( context.log, { overrides: args.connection }, async (page) => { const element = await resolveElement( page, args.selector, args.innerSelector ); await element.setData(args.data); const dataKeys = Object.keys(args.data ?? {}); return toTextResult( `已更新组件数据键: ${dataKeys.length ? dataKeys.join(", ") : "(无)"}。` ); } ); }, }; }
- src/tools/element.ts:41-45 (schema)Zod schema defining the input parameters for the element_setData tool: selector, optional innerSelector, and data object, extending connectionContainerSchema.const setElementDataParameters = connectionContainerSchema.extend({ selector: z.string().trim().min(1), innerSelector: z.string().trim().min(1).optional(), data: z.record(z.unknown()), });
- src/tools/element.ts:70-83 (registration)createElementTools function registers the element_setData tool (via createSetElementDataTool) among other element tools.export function createElementTools( manager: WeappAutomatorManager ): AnyTool[] { return [ createTapElementTool(manager), createInputTextTool(manager), createCallElementMethodTool(manager), createGetElementDataTool(manager), createSetElementDataTool(manager), createGetInnerElementTool(manager), createGetInnerElementsTool(manager), createGetElementSizeTool(manager), createGetElementWxmlTool(manager), ];
- src/tools.ts:7-13 (registration)createTools aggregates tools from element tools (including element_setData) and others.export function createTools(manager: WeappAutomatorManager): AnyTool[] { return [ ...createApplicationTools(manager), ...createPageTools(manager), ...createElementTools(manager), ]; }
- src/index.ts:17-17 (registration)Final registration of all tools, including element_setData, to the FastMCP server instance.server.addTools(createTools(manager));