正确的方法(如果可能的话)将JSX代码存储到Javascript变量中

我使用ReactJs的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>

    )
  }
}

但它发现我无法将直接JSX代码存储到变量中,因为我收到以下错误

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 />};
     |                                                        ^

链接组件存储在href变量中的正确方法是什么?

解决方法

你只需编写简单的jsx,在你的情况下你需要删除jsx周围的括号,然后在“mod / admin”this.props.link部分周围包括括号,就像你在render方法中写一样.
var href = this.props.submenu ? 'javascript:' : <Link to={"mod/admin" + this.props.link} />

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...