2017-03-16 29 views
2

我有格式化像order.expeditionPlaces JSON数据:分割字符串中的反应if语句

"expeditionPlaces": "Place1, Place2",

我试图分裂这个,使其在新行,我展示各个地方还需要能够检查它是否是空

Place1

Place2

{order.expeditionPlaces.split(",").join("<br />")}收到空值时抛出错误。

我不知道最好的办法是什么,我试过拆分和加入对象本身,也试图把它放入const Split但它不喜欢这个,我不知道在哪里它应该在if语句之内?

if (this.state.possibleOrders && this.state.possibleOrders.length > 0) { 
     this.state.possibleOrders.forEach((order, index) => { 
      possibleOrders.push(<tr key={index}> 
       <td>{order.orderId}</td> 
       <td><Button bsStyle="success">{order.sortingTableName}</Button></td> 
       <td>{Split}</td> 
       <td>{order.expeditionPlaces.split(",").join("<br />")}</td> 
       <td>{order.sortingBufferPlaces}</td> 
      </tr>); 

      const Split = if (order.expeditionPlaces.length >0) {order.expeditionPlaces.split(",").join("<br />")}} 
     } 
    ); 

回答

1

只需更换这

{order.expeditionPlaces.split(",").join("<br />")} 

随着

{order.expeditionPlaces ? order.expeditionPlaces.split(",").join("<br />") : ''} 
+0

完美,谢谢! –

+0

@ThomasHarrison如果有效,请接受答案 – DroidNoob

0

更改此

if (order.expeditionPlaces.length >0) 

if ((order.expeditionPlaces || '').length >0) 

相当常见的方法是使用OR ||短路,以防止出现空错误或在预期默认值时收到基本上错误的值。

您可以随时加以处理边界情况

  • (string_var || '').<someStringFunction>()(string_var || '').length
  • (array_var || []).length(array_var || []).<someArrayFunction>()

你的问题会奇迹般地消失了。

您可以在需要对象的地方使用|| {},依此类推。

我希望这会有所帮助。