Hoje comecei a aprender ReactJS e depois de uma hora enfrentei o problema .. Quero inserir um componente que tem duas linhas dentro de uma div na página. Um exemplo simplificado do que estou fazendo abaixo.
Eu tenho um html:
<html>
..
<div id="component-placeholder"></div>
..
</html>
Renderizar a função como esta:
...
render: function() {
return(
<div className="DeadSimpleComponent">
<div className="DeadSimpleComponent__time">10:23:12</div >
<div className="DeadSimpleComponent__date">MONDAY, 2 MARCH 2015</div>
</div>
)
}
....
E abaixo estou chamando render:
ReactDOM.render(<DeadSimpleComponent/>, document.getElementById('component-placeholder'));
O HTML gerado tem a seguinte aparência:
<html>
..
<div id="component-placeholder">
<div class="DeadSimpleComponent">
<div class="DeadSimpleComponent__time">10:23:12</div>
<div class="DeadSimpleComponent__date">MONDAY, 2 MARCH 2015</div>
</div>
</div>
..
</html>
O problema que não estou muito feliz é que o React me forçou a embrulhar tudo em um div "DeadSimpleComponent". Qual é a melhor e mais simples solução alternativa para isso, sem manipulações explícitas de DOM?
ATUALIZAÇÃO 28/07/2017: Mantenedores do React adicionaram essa possibilidade no React 16 Beta 1
Desde React 16.2 , você pode fazer isso:
render() {
return (
<>
<ChildA />
<ChildB />
<ChildC />
</>
);
}
