gpt4 book ai didi

javascript - 如何在渲染函数中使用 if 进行比较

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:03:05 27 4
gpt4 key购买 nike

我正在尝试借助从输入中获得的状态加载组件二或三。我知道如何在渲染函数中使用三元运算符。是这样的

render: function(){
return( <div>
{this.state.in===2?<Two/>: <Three/>}
</div>
)}


但这只适用于两个比较,如果我有十个组件并且想在 10 个不同的选择上加载 10 个不同的组件。我已经去了。这是我对此的尝试。我无法像使用三元运算符那样将 if 条件保留在 {} 中,如果我不将它们保留在 {} 中,渲染会将其作为普通文本加载。这是我的代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello React</title>
<script src="https://fb.me/react-0.13.3.js"></script>
<script src="https://fb.me/JSXTransformer-0.13.3.js"></script>
</head>
<body>
<div id="example"></div>
<script type="text/jsx">

var One = React.createClass({

getInitialState: function(){
return {in:2}
},

handler: function(eve){

this.setState({
in: eve.target.value
})
},

render: function(){
return(
<div>
<input value={this.state.in} onChange={this.handler} />
if(this.state.in ===2){
<Two/>
}
if(this.state.in ===3){
<Three />
}

</div>
)

}

});


var Two = React.createClass({

render: function(){
return(<div>
This is component 2
</div>)

}

});

var Three = React.createClass({

render: function(){
return(<div>This is the third one</div>)

}


})


React.render(<One/>,document.getElementById('example'));

</script>
</body>
</html>

ps: 如需进一步阅读和官方文档,请查看此 http://facebook.github.io/react/tips/if-else-in-JSX.html

最佳答案

React 可以处理节点数组。因此,尝试创建一个数组:

let children = [];

if (cond1) children.push(elem1);
if (cond2) children.push(elem2);
if (cond3) children.push(elem3);

return <div>{children}</div>;

关于javascript - 如何在渲染函数中使用 if 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31536332/

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