我知道你的反应不能使用<html>
像琴弦,我正在寻找一个解决方案,但我没有看到明确的,如何在这种复杂的逻辑,你可以插入<br/>
对象,而不是像串,因为变量“NEWVALUE”需要存储和有条件地增加BR分开行的元素。
let values = JSON.parse(value);
let newvalue = '';
values.map((item) => {
for (const key in listViewField.subfields) {
let nameField = key;
if (typeof item[nameField] !=='undefined') {
newvalue += item[nameField]+ ' ';
}
}
// if (newvalue.trim() !=='') newvalue += '<br/>'; // doesn't work
});
value = newvalue;
return <div key={keyIndex}>{value}</div>;
而不是使用的地图,你可以遍历你的价值观和他们推到一个数组。
let values = JSON.parse(value);
let contents = [];
for (let value of values) {
contents.push(<span key={value.key}>{value.name}</span>);
if (value.condition) {
contents.push(<br key={`${value.key}-br`} />);
}
});
return <div>{contents}</div>;
不要忘了一个独特的键添加到每个项目。
要添加不同的选项,如果你想与map
使用它,你的item
是简单的字符串,那么你可以做这样的事情。
items.map((item, key) => {
<span style={{whiteSpace: 'pre'}} key={key}>{item + '\n'}</span>
});
请注意,我已经加入style={{whiteSpace: 'pre'}}
和+ \n