fix: 🐛 loop bug

This commit is contained in:
春希 2020-08-13 00:28:51 +08:00
parent db144a9c6b
commit 8f5391063d

View File

@ -166,15 +166,13 @@ export function generateBasicNode(
export function generateReactCtrlLine(ctx: INodeGeneratorContext, nodeItem: IComponentNodeItem): CodePiece[] { export function generateReactCtrlLine(ctx: INodeGeneratorContext, nodeItem: IComponentNodeItem): CodePiece[] {
const pieces: CodePiece[] = []; const pieces: CodePiece[] = [];
if (nodeItem.loop && nodeItem.loopArgs) { if (nodeItem.loop) {
let loopDataExp; const args: [string, string] = nodeItem.loopArgs || ['item', 'index'];
if (isJsExpression(nodeItem.loop)) { const loopData = generateCompositeType(nodeItem.loop, {
loopDataExp = `(${generateExpression(nodeItem.loop)})`; nodeGenerator: ctx.generator,
} else { });
loopDataExp = JSON.stringify(nodeItem.loop);
}
pieces.unshift({ pieces.unshift({
value: `${loopDataExp}.map((${nodeItem.loopArgs[0]}, ${nodeItem.loopArgs[1]}) => (`, value: `(${loopData}).map((${args[0]}, ${args[1]}) => (`,
type: PIECE_TYPE.BEFORE, type: PIECE_TYPE.BEFORE,
}); });
pieces.push({ pieces.push({
@ -198,7 +196,7 @@ export function generateReactCtrlLine(ctx: INodeGeneratorContext, nodeItem: ICom
}); });
} }
if (nodeItem.condition || (nodeItem.loop && nodeItem.loopArgs)) { if (nodeItem.condition || nodeItem.loop) {
pieces.unshift({ pieces.unshift({
value: '{', value: '{',
type: PIECE_TYPE.BEFORE, type: PIECE_TYPE.BEFORE,