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

标签 javascript reactjs jsx babeljs

我使用 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 部分周围的括号,就像您在编写时一样渲染方法。

var href = this.props.submenu ? 'javascript:' : <Link to={"mod/admin" + this.props.link} />

关于javascript - 将 JSX 代码存储到 Javascript 变量中的正确方法(如果可能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41947071/

相关文章:

javascript - 导入配置文件以在带有汇总的 javascript 应用程序中使用

javascript - 将元素从开始位置动画到另一个元素的位置

javascript - useLazyQuery 在循环和 Promise.all 内不起作用

javascript - 在占位符 JSX 中渲染特殊字符

javascript - (JSX) 是 React 中 javascript 的语法扩展是什么意思

javascript - jQuery 验证和占位符冲突

javascript - 为什么 Chrome 扩展程序不返回 Google Search API 结果?

javascript - 用增量值和超时填充栏

reactjs - 刷新页面时Cloudfront返回403禁止

javascript - 在javascript,reactjs中拆分字符串