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