为什么在标签中添加 space 会将节点注册为 Comment_Node
Why does adding a space in tag register the node as Comment_Node
我有以下与 jest 一起使用的测试代码我在 "Dom".
中加载了 React 组件
const actionDropDownErrorNode =(data,myStyles={})=>{
let actionDropDownErr = TestUtils.renderIntoDocument(
<div><ActionDropDownError data={data || <div></div>} styles={myStyles}/></div>
);
return ReactDOM.findDOMNode(actionDropDownErr).firstChild;
};
现在当我检查元素的内容时
<span className={styles.solution || "solution"}>{data.solution}</span>
it returns a Text_Node 这是我想要的,但是如果我将元素更改为:
<span className={styles.solution || "solution"}>{data.solution} </span>
它returns一个Comment_Node这是为什么?
出于参考目的,这是我从元素标签中获取 data.solution 的方式:
const elementContent = node =>{
if (node.nodeType === 1 && node.firstChild !== null) {
if (node.firstChild.nodeType ===3){
elements.push(node.firstChild.textContent);
}
}
};
JSX 中的 space 结果为空字符串 " "
:
所以这个 <span className={styles.solution || "solution"}>{data.solution}</span>
将导致:
React.createElement(
"span",
{ className: styles.solution || "solution" },
data.solution
);
而这个 <span className={styles.solution || "solution"}>{data.solution} </span>
将导致:
React.createElement(
"span",
{ className: styles.solution || "solution" },
data.solution,
" "
);
我有以下与 jest 一起使用的测试代码我在 "Dom".
中加载了 React 组件const actionDropDownErrorNode =(data,myStyles={})=>{
let actionDropDownErr = TestUtils.renderIntoDocument(
<div><ActionDropDownError data={data || <div></div>} styles={myStyles}/></div>
);
return ReactDOM.findDOMNode(actionDropDownErr).firstChild;
};
现在当我检查元素的内容时
<span className={styles.solution || "solution"}>{data.solution}</span>
it returns a Text_Node 这是我想要的,但是如果我将元素更改为:
<span className={styles.solution || "solution"}>{data.solution} </span>
它returns一个Comment_Node这是为什么?
出于参考目的,这是我从元素标签中获取 data.solution 的方式:
const elementContent = node =>{
if (node.nodeType === 1 && node.firstChild !== null) {
if (node.firstChild.nodeType ===3){
elements.push(node.firstChild.textContent);
}
}
};
JSX 中的 space 结果为空字符串 " "
:
所以这个 <span className={styles.solution || "solution"}>{data.solution}</span>
将导致:
React.createElement(
"span",
{ className: styles.solution || "solution" },
data.solution
);
而这个 <span className={styles.solution || "solution"}>{data.solution} </span>
将导致:
React.createElement(
"span",
{ className: styles.solution || "solution" },
data.solution,
" "
);