2017-03-16 30 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>()

你的問題會奇蹟般地消失了。

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

我希望這會有所幫助。