1.忘记大写React组件考虑这段代码,它创建了一个包含父组件标题的简单div。里面有一个子组件,其中包含一个带有一些文本的div。classchildComponenttextendsReact.Component{render(){return( ChildComponent

1.忘记大写React组件考虑这段代码,它创建了一个包含父组件标题的简单div。里面有一个子组件,其中包含一个带有一些文本的div。classchildComponenttextendsReact.Component{render(){return( ChildComponent
{randomString}
Hello!
}{??showBody&&Spotthemistake!
});}}考虑这个ChildComponent有两个属性:showIntro和显示身体。它显示“Hello!和”Errorfound!只有当showIntro和showBody分别设置为true时才为真。ChildComponent期望两个布尔值作为props传递。如果你在父组件中做这样的事情会发生什么情况?标记,而最后一个ChildComponent则不呈现。'false'和{'passedaspropsfalse'}会导致showIntro和showBody被无意中分配了字符串值false而不是布尔值false。对于前两个ChildComponents,showIntro和showBody的计算结果都为true。这是由于隐式类型强制。当&&运算符检查showIntro或showBody(两者strings),两个字符串都将被强制为true。最后一个ChildComponent接收布尔值false,因此它无法正确呈现任何内容。console.log(`showIntrotype:${typeofshowIntro}`);console.log(`showIntroevaluatedto:${showIntro&&true}`);console.log(`showBodytype:${typeofshowBody}`);console.log(`showBodyevaluatedto:${showBody&&true}`);为了确认这一点,我们运行console.log()来检查每个ChildComponent中prop的结果。如此处所示,对于初学者来说,在将道具传递给其他组件时能够区分使用引号和大括号之间的区别非常重要。您可以使用引号来传递字符串文字。