From 315a408c3b73ff2c54604511278a0627c4ac1e9d Mon Sep 17 00:00:00 2001 From: fenggenggeng <2498421176@qq.com> Date: Tue, 7 Apr 2020 10:41:24 +0800 Subject: [PATCH] =?UTF-8?q?#454#=E5=86=AF=E6=9B=B4=E6=9B=B4=E7=AC=AC?= =?UTF-8?q?=E4=B8=80=E6=AC=A1=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.js | 2 +- src/react/ReactChildren.js | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/index.js b/src/index.js index 8243347..94a23a7 100644 --- a/src/index.js +++ b/src/index.js @@ -3,7 +3,7 @@ import React, { Component } from './react'; import ReactDOM from 'react-dom'; class Child extends Component { render() { - console.log(this.props.children); + console.log(this.props,React); const mappedChildren = React.Children.map( this.props.children, (item, index) => ( diff --git a/src/react/ReactChildren.js b/src/react/ReactChildren.js index bbc07d8..b21e849 100644 --- a/src/react/ReactChildren.js +++ b/src/react/ReactChildren.js @@ -1,8 +1,21 @@ function mapChildren(children, func, context) { //TODO实现此mapChildren方法 - return children; + let value, + childrenMap=[] + children.forEach((item,index)=> { + value= (Array.isArray(item)?recursionAry(item,index,func):func(item,index)) + childrenMap.push(...(Array.isArray(value)?value:"")) + }) + return childrenMap; } - +function recursionAry(item,index,func){ + let result = [] + item.forEach((r,i)=>{ + result.push(...(Array.isArray(r)?recursionAry(r,i,func):func(r,index+i))) + }) + return result +} +//2020/04/07 冯更更 childrenMap export { mapChildren as map, }; \ No newline at end of file -- Gitee