mirror of
				https://github.com/vuejs/babel-plugin-jsx.git
				synced 2025-10-31 09:22:19 +08:00 
			
		
		
		
	* fix: jsx slot render unexpected #215 * test: update test
This commit is contained in:
		| @@ -122,7 +122,7 @@ const transformJSXElement = ( | ||||
|       t.isCallExpression(child) && child.loc && isComponent | ||||
|     ) { // the element was generated and doesn't have location information | ||||
|       const slotId = path.scope.generateUidIdentifier('slot'); | ||||
|       const scope = path.hub.getScope(); | ||||
|       const scope = path.scope; | ||||
|       if (scope) { | ||||
|         scope.push({ | ||||
|           id: slotId, | ||||
|   | ||||
| @@ -570,4 +570,24 @@ describe('should support passing object slots via JSX children', () => { | ||||
|  | ||||
|     expect(wrapper.html()).toBe('<span>foo<!----></span>'); | ||||
|   }); | ||||
|  | ||||
|   test('single expression, array map expression', () => { | ||||
|     const Test = defineComponent({ | ||||
|       setup(_, { slots }) { | ||||
|         return () => <span>{slots.default?.()}</span>; | ||||
|       }, | ||||
|     }); | ||||
|  | ||||
|     const data = ['A', 'B', 'C']; | ||||
|  | ||||
|     const wrapper = mount({ | ||||
|       render() { | ||||
|         return ( | ||||
|           <div>{data.map((item: string) => <Test><span>{item}</span></Test>)}</div> | ||||
|         ); | ||||
|       }, | ||||
|     }); | ||||
|  | ||||
|     expect(wrapper.html()).toBe('<div><span><span>A</span></span><span><span>B</span></span><span><span>C</span></span></div>'); | ||||
|   }); | ||||
| }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user