您的位置:首页 > Web前端 > React

React前端库,table中的每列内容,进行强制换行的解决方法

2018-03-02 15:22 1211 查看
1.问题描述:
管理系统的前端实现用的是React+ant design,但是React的table,每列的值,如果用<br />或者/r/n 来实现,则还是换行无效。如下图,SN值是多个以分号分隔的值,现在希望多个sn值能分行显示,将分号替换成 <br />或者/r/n ,列值就变成了"value1 <br />value2 " 或者"value1 /r/n value2",还是换行无效。也就是单元格换行无效。



2. 问题原因:
因为和其他的前端库不同,例如easyUI或者bootstrap,React中的table的单元格,利用后端返回的列值,直接替换字符串中的分隔符为<br>或者/r/n来换行,是无效的。

3.解决方法:
将前端代码的table的column代码中,要换行的那列,配置render属性,将标签<br></br>和每个显示值 混搭的方式,返回给列来显示(千万不能把标签放到引号里面,否则不识别其是标签)。
(1)截图如下:



(2)代码如下:
columns: [
{
title: '服务器IP',
dataIndex: 'ip',
}, {
title: 'SN',
dataIndex: 'sn',
render: (text, record) =>{
let snArray=[];
snArray=text.split(";");

let br=<br></br>;
let result=null;
if(snArray.length<2){
return text;
}

for(let i=0;i<snArray.length;i++){
if(i==0){
result=snArray[i];
}else{
result=<span>{result}{br}{snArray[i]}</span>;
}
}
return <div>{result}</div>;
}
}, {
title: '服务',
dataIndex: 'pathName'
}, {
title: '级别',
dataIndex: 'priority',
render: function (data) {
if (data === 0) {
return <Badge status="error" text="Critic"/>
} else {
return <Badge status="warning" text="Warning"/>;
}
}
}, {
title: '创建时间',
dataIndex: 'creatDate',
render: function (data) {
return moment(data).format("YYYY-MM-DD HH:mm:ss");
}
}]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐