If statement 渲染函数中的IF块
我是个新手。我想在渲染函数中使用IF块。在搜索时,我得到了类似“应该使用三元运算符而不是IF语句”的结果。但是如果我想用像If statement 渲染函数中的IF块,if-statement,reactjs,react-jsx,If Statement,Reactjs,React Jsx,我是个新手。我想在渲染函数中使用IF块。在搜索时,我得到了类似“应该使用三元运算符而不是IF语句”的结果。但是如果我想用像 $.each(array, function(i, x) { var flag = 0 if({x.a1} || !{x.a2}) { flag = 1; <p>true flag enabled</p> } <p>...</p> }); $。每个(数组、函数(i、x){ var标志=0 i
$.each(array, function(i, x) {
var flag = 0
if({x.a1} || !{x.a2}) {
flag = 1;
<p>true flag enabled</p>
}
<p>...</p>
});
$。每个(数组、函数(i、x){
var标志=0
if({x.a1}| |!{x.a2}){
flag=1;
启用真标志
}
});
如何将此语句转换为JSX语法或如何在React render Function中使用它
提前感谢。您想让渲染功能看起来像这样:
render: function () {
return (
{
array.map(function (el, i) {
var flag = 0;
if (el.a1 || el.a2) {
flag = 1;
return <p>true flag enabled</p>;
} else {
return <p>...</p>;
}
}
}
);
}
render:function(){
返回(
{
array.map(函数(el,i){
var标志=0;
如果(标高a1 | |标高a2){
flag=1;
返回真标志已启用;
}否则{
返回…;
}
}
}
);
}
React允许您返回React元素数组,因此您可以映射数组并为数组中的每个元素返回JSX元素。此链接将帮助您
但是我会使用类似的东西,因为它更容易阅读(IMHO)。注意,数组是传递到组件中的一个道具(或者可以是一个状态)。我会使用lodash进行映射等,因为它非常有用()
\u渲染:函数(){
返回映射(this.props.array,函数(el){
var标志=0;
返回el.a1 | | el.a2?{'true 1 enabled'}:…;
})
},
渲染:函数(){
返回(
{this.\u renderRelations()}
}
);
}
希望这会有所帮助。我用两种方法之一来实现这一点,主要取决于if语句的大小 有一种情况,我不知道是否要渲染元素:
Component = React.createClass({
render() {
var elem;
if (something) {
elem = (<SomeOtherComponent />);
}
return (
<div>{elem}</div>
);
}
});
Component=React.createClass({
render(){
var-elem;
如果(某物){
元素=();
}
返回(
{elem}
);
}
});
这基本上是一种显示元素/组件或不显示元素/组件的方法。如果要映射某个对象,我将使用单独的方法并调用它:
Component = React.createClass({
mapIt() {
return this.props.items.map(item => {
... do your stuff ...
return (
<SomeOtherComponent prop1={item.value} ... />
);
});
},
render() {
return (
{this.mapIt()}
);
}
});
Component=React.createClass({
mapIt(){
返回此.props.items.map(item=>{
…做你的事。。。
返回(
);
});
},
render(){
返回(
{this.mapIt()}
);
}
});
这对我来说是一种很好的干净的处理方式。问题是,如果我在jsx中使用“if”,巴贝尔会抛出错误“意外标记”,三元运算符工作正常,就像@Davet一样。但我只想使用简单的“if”块,而不是if..else。
Component = React.createClass({
mapIt() {
return this.props.items.map(item => {
... do your stuff ...
return (
<SomeOtherComponent prop1={item.value} ... />
);
});
},
render() {
return (
{this.mapIt()}
);
}
});