2016-06-07 57 views
1

我在ReactJS文檔中找到了關於如何在HTML元素上有條件地設置ID標記的代碼示例。如果條件爲false,它將ID標記的值設置爲null。這是壞事嗎?如果條件不滿足,ReactJS有沒有辦法根本不放置任何ID標籤?將React渲染中的HTML標籤設置爲null是不好的做法嗎?

ReactDOM.render(<div id={condition ? 'msg' : null}>Hello World!</div>, mountNode); 
+0

「如果條件爲假,那麼它將ID標籤的值設置爲null「哪個版本? https://jsfiddle.net/tb8pz97w/ –

+0

我想你的意思是「ID屬性」而不是「ID標籤」。 –

+0

是的,我的意思是「屬性」 – Lambert

回答

1

是否有辦法如果 條件不符合,ReactJS根本就沒有放置任何ID標籤?

但是,這就是這個代碼:

<div data-reactid=".0">Hello World!</div> 

如果truthy:

ReactDOM.render(<div id={condition ? 'msg' : null}>Hello World!</div>, mountNode); 

如果條件falsy,如預期省略了id屬性

<div id="msg" data-reactid=".0">Hello World!</div> 
+1

好吧,只是檢查以確保null是好的。什麼是「.0」? – Lambert

+0

好問題。 React在對虛擬DOM執行差異時使用自己的內部ID。基本上,我們可以忽略這些,它們被React的內部使用。 – lux

-1

當然,你可以,元素的道具或屬性可以是建立這樣

render() { 

    const props = { 
     id: 'myId', 
     className: 'myClass' 
    } 

    return (
     <div {...props}>Hello</div> 
    ) 

    } 

然後你可以添加一些條件來設置屬性

if (withTitle) { 
    props.title = 'myTitle' 
}