2016-04-20 50 views
0

我創建,看起來像這樣的部件的陣營應用:錨標籤的行爲做出反應

class TableRow extends React.Component { 
    constructor(props) { 
     super(props) 
    } 

    render() { 
     const handleClick =() => window.location.href = "some-url"; 

     return (
      <tr> 
       <td>Something 1</td> 
       <td>Something 2</td> 
       <td>Something 3</td> 
       <td>Something 4</td> 
      </tr> 
     ); 
    } 
} 

我想< TR>標籤的行爲像一個< >標籤,在這裏你可以:它

  1. 點擊有它去 「的一些-URL」
  2. 命令+點擊它,擁有它去「的一些-URL」,但在新標籤

方案1是簡單的,因爲我可以添加一個onClick財產到< TR>,但是當你嘗試命令+點擊它,它不會在新標籤中打開。

我不想一個< 一個>標記中包裹整個組件,因爲陣營拋出一個警告說,一個< TBODY>標籤不應該有< 一個>標記的孩子。我也不想將所有的標籤都包裝在一個< >>標籤下,因爲會引發類似的警告。

回答

1

還沒有試過反應,但我試圖用JavaScript解決你的問題。

看看這個Fiddle

//delegate click events on the table 
document.getElementById("table-with-anchors").addEventListener("click", function(e){ 
    //check if the targeted tr is set to be as an anchor 
    if (e.target && e.target.parentElement.classList.contains("tr-as-anchor")) { 
    //Do your stuffs here. 
    window.open('', '_blank'); 
    } 
    else { 
    alert("You selected tr without anchor"); 
    } 
}); 
+0

感謝您的建議! – wmock