gpt4 book ai didi

react-native - 为什么 React Native < Text > 组件不显示 bool 属性?

转载 作者:行者123 更新时间:2023-12-04 04:51:20 25 4
gpt4 key购买 nike

使用带有此代码的 RN 标准 组件我看到 “ Debug模式:” 仅文本(但预期: " Debug模式:true" )。

class ClassName extends Component {

static propTypes = {
debug: PropTypes.bool
};

render() {
return (
<View style={...}>
<Text>Debug mode: {this.props.debug}</Text>
</View>
)
}
}

const mapStateToProps = (state) => {
console.log(typeof(state.debug); //boolean
return {
debug: state.debug
}
}

export default connect(mapStateToProps)(ClassName);

截屏:

enter image description here

如上所述“state.debug”是 bool 类型:
console.log(typeof(state.debug)); //boolean

问题 - 为什么 bool Prop 不显示/渲染?

最佳答案

因为 JSX 是这样设计的。根据 the React documentation :

false, null, undefined, and true are valid children. They simply don't render. These JSX expressions will all render to the same thing:

<div />
<div></div>
<div>{false}</div>
<div>{null}</div>
<div>{undefined}</div>
<div>{true}</div>

...

Conversely, if you want a value like false, true, null, or undefined to appear in the output, you have to convert it to a string first:

<div>
My JavaScript variable is {String(myVariable)}.
</div>


所以这不仅仅是关于 React Native。这就是 React 的工作方式。

我不确定这个设计决定的原因,但 false 很方便。不为条件渲染而渲染:
{items.length > 0 && <ul>{items.map(item => <li>{item}</li>)}</ul>}
true 是有道理的 false 时不呈现未呈现。

关于react-native - 为什么 React Native < Text > 组件不显示 bool 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43530042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com