2016-06-07 58 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' 
}