JSX在脚本标记中花括号?

问题描述

这是一个愚蠢的问题,但现在困扰了我一段时间。我目前正在尝试设计一个Mithril.js组件,该组件返回一个包含<div>标签的<script>对象。我只是尝试执行一些测试,到目前为止,我的view()方法看起来类似于以下内容:

view() {
    return (<div>
        <script>
            var x = 5;
            alert(x);
            var y = {"a" : 1,"b": 3}; // Compiler complains about the curly braces in this line
        </script>
    </div>);
}

一切似乎都找到了,直到我尝试定义对象的那一行,编译器抱怨该行中的花括号。我的VS代码编辑器询问我是否要用{'{'}{'}'}&lbrace;&rbrace;替换括号,但这似乎也不能解决问题。是否有某种方式可以在JSX的<script>标签中包含花括号?

解决方法

您可以通过执行{(使用单字符字符串的插值)和}(如果适用)在JSX中包含文字{'{'}{'}'}

但是无论哪种情况,您都不必在视图 ever 中使用<script>。该视图已经在JS中-只需使用组件状态即可。

,

您需要危险地使用SetInnerHTML,但不建议这样做。

<script
  dangerouslySetInnerHTML={{
    __html: `
            var x = 5;
            alert(x);
            var y = {"a" : 1,"b": 3};
        `,}}
/>

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...