javascript - 转义字符无法在 ReactJS map 循环中工作

标签 javascript html reactjs html-escape-characters

我有文件调用 ArrayCustomer.js 包含这样的 ARRAY:

const ArrayCustomer = [
  {
    index:1,
    kondisi: 'Daftar Baru',
    badge: 'badge btn-warning',
  },
  {
    index:2,
    kondisi: 'Pelanggan dibawah 10m<sup>3</sup>',
    badge: 'badge btn-secondary',
  },
]

export default ArrayCustomer

然后我将该数组导入到我的组件调用EditCustomer.js
并在表单输入中循环使用 map 来显示 condi 西像这样:

<FormGroup>
  <Label for="status">Status Pelanggan</Label>
  <Input
    required
    value={this.state.status}
    onChange={this.handleChange}
    type="select"
    name="status"
    id="status"
  >
    ArrayCustomer.map(item => (
    <option value={item.index}>{item.kondisi}</option>) ) }
  </Input>
</FormGroup>;

但转义字符不显示为 HTML/JSX 标签。 我就是因为这个才Stack的,希望你能帮助我。谢谢。

最佳答案

您需要使用 dangerouslySetInnerHTML 在 React 元素中渲染 HTML 字符串。

使用此函数解码 HTML 字符串。

const decodeString = str => {
  var element = document.createElement("div");
  element.innerHTML = str;
  return element.childNodes.length === 0
    ? ""
    : String(element.childNodes[0].nodeValue);
};

更新map方法,在添加元素时使用decodeString方法。

ArrayCustomer.map(item => (
  <option
    value={item.index}
    dangerouslySetInnerHTML={{ __html: decodeString(item.kondisi) }}
  ></option>
));

关于javascript - 转义字符无法在 ReactJS map 循环中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60316013/

相关文章:

javascript - 在 React 中参数化事件处理程序

javascript - 如何将输入目标值和 setState 值作为参数传递给辅助函数?

javascript - 验证元素是否存在并将其传递给函数

javascript - 如何使用 javascript 检查输入是否包含 isbn

javascript - 如何编写搜索数组的循环

javascript - 添加 cordova.js 时混合移动应用程序崩溃

JavaScript 更新 ASP :Label Not Updating Text

java - 将 JsonArray 的类型从 Action 返回到具有多个 JSONArray 对象的 JSP?

html - 从 Markdown 生成的 HTML 中的 Shift anchor 标记,作者:Jekyll

datepicker - 没有初始值的react-datepicker