转义字符无法在 ReactJS 映射循环中工作
Escape Character Cannot Working in ReactJS Map Looping
我有文件调用 ArrayCustomer.js 包含这样的数组:
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
然后我将 Array 导入我的组件调用 EditCustomer.js
并在 form input 我循环使用地图来显示 kondisi 像这样:
<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>
));
我有文件调用 ArrayCustomer.js 包含这样的数组:
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
然后我将 Array 导入我的组件调用 EditCustomer.js
并在 form input 我循环使用地图来显示 kondisi 像这样:
<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>
));