Ban*_*hee 19 javascript reactjs react-jsx
我需要根据数据模型生成不同的reactJS代码但是我得到了
在文件"〜/ Scripts/Grid.jsx"中:解析错误:第13行:意外的令牌if(在第13行第15行)行:52列:3
有了这段代码
var GridRow = React.createClass({
render: function() {
var row;
row = this.props.cells.map(function(cell, i) {
return (
if(cell.URL != null && cell.URL.length > 0){
<td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>
}
else {
<td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>
}
);
}.bind(this));
return (
<tr>
{row}
</tr>
);
}
});
Run Code Online (Sandbox Code Playgroud)
渲染部分似乎在如何使用它真的有限?
nil*_*gun 25
你把return
语句放在if
子句中就像这样:
row = this.props.cells.map(function(cell, i) {
if(cell.URL != null && cell.URL.length > 0){
return <td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>;
}
else {
return <td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>;
}
}.bind(this));
Run Code Online (Sandbox Code Playgroud)
您也可以使用三元(内联if / else)语句。它可能看起来像这样:
row = this.props.cells.map(function(cell, i) {
return (cell.URL != null && cell.URL.length > 0) ?
(<td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>) :
(<td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>)
}.bind(this));
Run Code Online (Sandbox Code Playgroud)
或es6
row = this.props.cells.map((cell, i) => (cell.URL != null && cell.URL.length > 0) ?
(<td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>) :
(<td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>)
);
Run Code Online (Sandbox Code Playgroud)
但是,出于可读性考虑,我建议使用nilgun的答案。
尽管我将删除else语句,但由于它是多余的。您也可以删除大括号,这是优先选择的问题。
row = this.props.cells.map(function(cell, i) {
if(cell.URL != null && cell.URL.length > 0)
return <td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>;
return <td className={cell.Meta.HTMLClass} key={i}>{cell.Text}</td>;
}.bind(this));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
47124 次 |
最近记录: |