Man*_*ena 2 javascript arrays reactjs
在我的 React 渲染函数中,我使用 array.map 返回数组中的一些 JSX 代码,然后渲染它。这似乎不起作用,我在这里读到了一些问题,建议在 if/else 块内使用 return 语句,但这在我的情况下不起作用。我想检查每个数组元素上是否设置了轮次和持续时间,然后才将其传递到 JSX 代码中。有人可以告诉我一种不同的方法吗?
render() {
var interviewProcessMapped = interviewProcess.map((item, index) => {
return
{item.round ?
<div className="row title">
<div className="__section--left"><span className="section-title">Round {index + 1}</span></div>
<div className="__section--right">
<h3>{item.round}</h3>
</div>
</div>
: null
}
{
item.durationHours > 0 || item.durationMinutes > 0 ?
<div className="row">
<div className="__section--left">Duration</div>
<div className="__section--right border">
{item.durationHours > 0 ? <span>{item.durationHours} Hours</span> : null} {item.durationMinutes > 0 ? <span>{item.durationMinutes} Minutes</span> : null}
</div>
</div>
: null
}
});
return <div>{interviewProcessMapped}</div>
}
Run Code Online (Sandbox Code Playgroud)
{这里不需要:
return {item.round ?
Run Code Online (Sandbox Code Playgroud)
如果您使用它,则意味着您正在返回一个对象。
另一个问题是单独的return方法return;(自动分号插入),因此要么将条件放在同一行中,要么使用().
像这样写:
render() {
let a, b;
var interviewProcessMapped = interviewProcess.map((item, index) => {
a = item.round ?
<div className="row title">
....
</div>
: null;
b = (item.durationHours > 0 || item.durationMinutes > 0) ?
<div className="row">
....
</div>
: null;
if(!a || !b)
return a || b;
return [a, b];
});
return (....)
}
Run Code Online (Sandbox Code Playgroud)