我正在从事React Native项目。我从服务器得到响应,响应如下。
{
"id": 12,
"year": 2019,
"percentage": "-0.45",
}, {
"id": 13,
"year": 2018,
"percentage": "4.45",
},
因此,我必须检查是否为空或不是特定字段,如果为空,则必须在UI中将该标签设置为 0 。
为此,我正在使用Loadash库进行验证检查。
value: !isEmpty(get(item, 'percentage').replace('-', '').replace(/[,-]/g, '') ? get(item, 'percentage') : '0')
但是,它不能验证字符串内的负值。 有什么建议吗?
答案 0 :(得分:2)
最后关闭括号。这是错误的地方。将其放在?
之前:
value: !isEmpty(get(item, 'percentage').replace('-', '').replace(/[,-]/g, '')) ? get(item, 'percentage') : '0'
长行总是很难阅读和调试,因此请尝试分解代码。
let percentage = get(item, 'percentage'),
p = percentage.replace(/[,-]/g, '');
value : !isEmpty(p) ? p : 0;
如果您这样做了,您会发现自己的错误是:
value : !isEmpty(p ? p : 0);
答案 1 :(得分:1)
JavaScript区分大小写。因此,将percentage
更改为Percentage
:
value: !isEmpty(get(item, 'Percentage').replace('-', '').replace(/[,-]/g, '') ?
get(item, 'Percentage') : '0')
答案 2 :(得分:0)
有两种方法可以做到这一点(第一种可能无法在React Native中使用) 将标签的默认值保持为0,这样,只要您在dom或JSON本身中收到一些空字符串,它就会处理该问题。正如我所说,React不支持它。
第二。 在前端装订之前进行检查。 一种。检查单个键的值是否为空,NA或未定义,然后将其设置为0(根据需要)。例如,如果实例为空,则使用bind函数将其设置为0或使用此函数设置变量。这是一种简单的方法。
在ES6中使用_.get
_.get的优点是,您可以省略继续检查是否存在属性,这是必要的。
希望这会有所帮助。