How to use if within a map return?

javascript, reactjs

Solution

You put `return` statement inside `if` clause like so:

    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));

Problem

I need to generate diffrent reactJS code based on datamodel but I get In file "~/Scripts/Grid.jsx": Parse Error: Line 13: Unexpected token if (at line 13 column 15) Line: 52 Column:3 With this code ``` 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> ); } }); ``` The render part seems to be really limited in how it can be used?

Original source

Related problems