Ver código fonte

wip: adjust slot props compilation

Evan You 1 ano atrás
pai
commit
9a8645d0c5
1 arquivos alterados com 7 adições e 16 exclusões
  1. 7 16
      packages/compiler-vapor/src/generators/component.ts

+ 7 - 16
packages/compiler-vapor/src/generators/component.ts

@@ -342,7 +342,7 @@ function genSlotBlockWithProps(oper: SlotBlockIRNode, context: CodegenContext) {
     rawProps = props.content
     if ((isDestructureAssignment = !!props.ast)) {
       ;[depth, exitScope] = context.enterScope()
-      propsName = `_ctx${depth}`
+      propsName = `_slotProps${depth}`
       walkIdentifiers(
         props.ast,
         (id, _, __, ___, isLocal) => {
@@ -357,26 +357,17 @@ function genSlotBlockWithProps(oper: SlotBlockIRNode, context: CodegenContext) {
 
   const idMap: Record<string, string | null> = {}
 
-  Array.from(idsOfProps).forEach(
-    (id, idIndex) =>
-      (idMap[id] = isDestructureAssignment ? `${propsName}[${idIndex}]` : null),
+  idsOfProps.forEach(
+    id =>
+      (idMap[id] = isDestructureAssignment
+        ? `${propsName}[${JSON.stringify(id)}]`
+        : null),
   )
-  let blockFn = context.withId(
+  const blockFn = context.withId(
     () => genBlock(oper, context, [propsName]),
     idMap,
   )
   exitScope && exitScope()
 
-  if (isDestructureAssignment) {
-    const idMap: Record<string, null> = {}
-    idsOfProps.forEach(id => (idMap[id] = null))
-
-    blockFn = genCall(
-      context.vaporHelper('withDestructure'),
-      ['(', rawProps, ') => ', ...genMulti(DELIMITERS_ARRAY, ...idsOfProps)],
-      blockFn,
-    )
-  }
-
   return blockFn
 }