He escrito el siguiente código usando la sintaxis ReactJs´s JSX :
import { Link } from 'react-router'; class SidebarMenuItem extends React.Component { render() { var href = (this.props.submenu ? 'javascript:' : {<Link to="mod/admin" + this.props.link />}; return ( <a href={href} onClick={this.selected}> <i className={'fa ' + this.props.icon} /> <span>{this.props.title}</span> </a> ) } }Pero vi que no puedo almacenar un código JSX directo en una variable, ya que recibí el siguiente error:
Module build failed: SyntaxError: D:/9. DEV/client/components/App/SidebarMenuItem.js: Unexpected token, expected , (41:52) 40 | > 41 | var href = (this.props.submenu ? 'javascript:' : {<Link to="mod/admin" + this.props.link />}; | ^ ¿Cuál es la forma correcta de almacenar mi componente Link en la variable href ?
simplemente escribiría jsx simple, en su caso, debe quitar los corchetes alrededor de jsx y luego incluir los corchetes alrededor de la parte "mod/admin" + this.props.link tal como lo haría cuando escribe en el método de renderizado .
var href = this.props.submenu ? 'javascript:' : <Link to={"mod/admin" + this.props.link} />Use () alrededor de JSX que abarca varias líneas
var href = this.props.submenu ? 'javascript:' : (<Link to="mod/admin" + this.props.link />);