最近在实现createElement API的原理时遇见一个问题,希望寻求帮助与解惑。
有问题代码
import React from './react';
const style = {border:'3px solid red', margin:'5px'}
let element = (
  <div id='A1' key='A1' style={style}>
    A1
    <div id='B1' key='B1' style={style}>
      B1
      <div id='c1' key='c1' style={style}> C1</div>
      <div id='c2' key='c2' style={style}>C2</div>
    </div>
    <div id='B2' key='B2' style={style}>
      B2
    </div>
  </div>
)
console.log(element);
复制代码此时的打印结果为

为了调试错误,我直接利用React.createElement进行下来的测试并得到结果。
console.log(React.createElement('div',{id:'A1'},'B1'));
复制代码
显然,问题是出在了并没有调用React.createElement函数对jsx语法进行解析,但是我不明白为何会出现此结果,希望有大佬为我进行解惑。
附上react.js代码:
const ELEMENT_TEXT = Symbol.for('ELEMENT_TEXT')
function createElement(type, props, ...children) {
    return {
        type,
        props: {
            ...props,
            children: children.map(child => {
                return typeof child === 'object' ? child : createTextNode(child)
            })
        }
    }
}
function createTextNode(textNode) {
    return {
        // ELEMENT_TEXT: A1: <div>A1</div>
        type: ELEMENT_TEXT,
        props: {
            text: textNode,
            children: []
        }
    }
}
复制代码© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
    




![SugarCRM GLOBALS[sugarEntry]参数 目录遍历或PHP远程文件包含漏洞-一一网](https://www.proyy.com/skycj/data/images/2021-07-03/30f462579bec41fc25e0b1d57503e6d6.png)













![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)
