Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么React会为布尔数据属性分配字符串值;真的;?_Javascript_Reactjs_Jsx - Fatal编程技术网

Javascript 为什么React会为布尔数据属性分配字符串值;真的;?

Javascript 为什么React会为布尔数据属性分配字符串值;真的;?,javascript,reactjs,jsx,Javascript,Reactjs,Jsx,如果我在JSX中编写并使用React呈现它: <div data-foo>Hello world</div> 你好,世界 …生成的DOM如下所示: <div data-foo="true">Hello world</div> 你好,世界 为什么? 为了比较,当我使用标准化的布尔属性(例如,OK)时,这种情况不会发生——生成的DOM与JSX相同。为什么布尔数据属性的处理方式不同?没有布尔数据-属性。就DOM而言,它们是字符串。@这一点与之矛盾

如果我在JSX中编写并使用React呈现它:

<div data-foo>Hello world</div>
你好,世界
…生成的DOM如下所示:

<div data-foo="true">Hello world</div>
你好,世界
为什么?


为了比较,当我使用标准化的布尔属性(例如,
OK
)时,这种情况不会发生——生成的DOM与JSX相同。为什么布尔数据属性的处理方式不同?

没有布尔
数据-
属性。就DOM而言,它们是字符串。@这一点与之矛盾——尽管你可能是对的,但另一个答案认为它是错的是的;我认为这个答案是错误的。我不确定React如何处理
数据-
属性,但例如jQuery
.data()
API会检查属性值是否可以解释为JSON,如果可以,则会返回JSON解析的结果,如果字符串看起来像JavaScript原语(数字和布尔值)你得到了解析后的原语值。也许,它是按设计工作的。如果您有理由不希望出现这种行为,您应该在Git回购中打开一个问题。