javascript - React 中的 HTML 或脚本解释以及普通 HTML

标签 javascript html reactjs browser

我是 React 的新手我有这个疑问。我想渲染 li 的列表元素到ul 。我正在循环并渲染到 UI。 一切都按预期顺利运行

但我的疑问是在渲染元素时,如果元素是 <b>sampletext</b>它按原样渲染。我想知道为什么浏览器不解释这些元素,并且不显示为像 sampletext 这样的粗体文本。

我尝试在普通 html 和 js 中添加具有相同文本的动态元素 <b>sampletext</b>但它被解释为样本文本并显示为粗体文本。

任何人都可以帮助我了解 React 如何在渲染时处理文本元素而不解释元素中的标签吗?提前致谢。

编辑::

render: function() {
    var arr = ['sampletext1', 'sampletext2', '<b>sampletext3</b>'];
    var arrElements = arr.map(function(elem){
                    return <li>{elem}</li>;
                  })

    return  <ul>{ arrElements }</ul>
}

注意:我从一个教程网站获得了代码引用,并学习了如何循环元素

最佳答案

我认为您只是希望第三个数组元素是 JSX 元素而不是字符串:

 var arr = ['sampletext1', 'sampletext2', <b>sampletext3</b>];

编辑:

为了说明为什么会出现这种情况,请参阅下面有关如何将 JSX 编译为 JavaScript 的示例函数以及每种情况下的差异。

JSX:

function bAsJsxElement() {
  return <li><b>sampletext3</b></li>;
}

function bAsString() {
  return <li>{'<b>sampletext3</b>'}</li>;
}

编译后的 JavaScript:

function bAsJsxElement() {
  return React.createElement(
    'li',
    null,
    React.createElement(
      'b',
      null,
      'sampletext3'
    )
  );
}

function bAsString() {
  return React.createElement(
    'li',
    null,
    '<b>sampletext3</b>'
  );
}

如果传入 React.CreateElement 的第三个参数是一个字符串,则在渲染到 HTML 时它将被放在引号之间。

关于javascript - React 中的 HTML 或脚本解释以及普通 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45196520/

相关文章:

javascript - 有没有什么技术可以通过 CSS 规则将任意文本传递给 JavaScript?

javascript - 实时数据图

html - 当其他div有更多数据时,如何使4个div的文本高度相等

javascript - Material ui appbar 在移动设备上不会缩小

javascript - 收集多个输入的更好方法

javascript - 预期参数的类型为 `array`,但收到的类型为 `string` - image-webpack-loader

php - HTML5分页

javascript - 删除一行后,从代码隐藏中禁用 html 输入按钮

javascript - JSON 问题似乎应该有效

javascript - 当变量改变时 redux 状态自动改变