React:微数据类型范围被奇怪地传递
React: microdata typeScope being pased weirdly
我正在尝试将微数据设置为包含在父组件中的 p 元素。当我在父级中设置 itemScope=""
时,我没有在 dom 中的 p 元素中获取它,但是如果我单独设置 itemScope
,它会按预期工作,尽管这意味着 itemScope={true}
根据 React 规则。 ItemScope
是一个布尔属性,因此根据 HTML 规范,当您希望它被视为 true 时,它应该是空字符串或规范值。我错过了什么?
参见fiddle:
https://jsfiddle.net/rv9085ob/
<!-- html -->
<div id="app"></div>
// js
const SimpleComp = (props) => <p {...props}>ItemScope is [{JSON.stringify(props.itemScope)}]</p>;
const fragment = <div>
<SimpleComp itemScope="" />
<SimpleComp itemScope />
<SimpleComp itemScope={true} />
</div>;
ReactDOM.render(fragment, document.querySelector("#app"))
结果:
<div>
<p>ItemScope is [""]</p>
<p itemscope="">ItemScope is [true]</p>
<p itemscope="">ItemScope is [true]</p>
</div>
请参阅 React Github 存储库中的此问题。 https://github.com/facebook/react/issues/13400
这里有一个公开的 PR,似乎正在进行中 - https://github.com/facebook/react/pull/13404
我正在尝试将微数据设置为包含在父组件中的 p 元素。当我在父级中设置 itemScope=""
时,我没有在 dom 中的 p 元素中获取它,但是如果我单独设置 itemScope
,它会按预期工作,尽管这意味着 itemScope={true}
根据 React 规则。 ItemScope
是一个布尔属性,因此根据 HTML 规范,当您希望它被视为 true 时,它应该是空字符串或规范值。我错过了什么?
参见fiddle: https://jsfiddle.net/rv9085ob/
<!-- html -->
<div id="app"></div>
// js
const SimpleComp = (props) => <p {...props}>ItemScope is [{JSON.stringify(props.itemScope)}]</p>;
const fragment = <div>
<SimpleComp itemScope="" />
<SimpleComp itemScope />
<SimpleComp itemScope={true} />
</div>;
ReactDOM.render(fragment, document.querySelector("#app"))
结果:
<div>
<p>ItemScope is [""]</p>
<p itemscope="">ItemScope is [true]</p>
<p itemscope="">ItemScope is [true]</p>
</div>
请参阅 React Github 存储库中的此问题。 https://github.com/facebook/react/issues/13400
这里有一个公开的 PR,似乎正在进行中 - https://github.com/facebook/react/pull/13404