Estou trabalhando com design de Carbono e React - seguindo o exemplo:
<HeaderContainer render={({
isSideNavExpanded,
onClickSideNavExpand
}) => {
console.log("Rendering", onClickSideNavExpand)
console.log("Rendering", isSideNavExpanded)
return (<> ...
<HeaderMenuButton aria-label={isSideNavExpanded ? 'Close menu' : 'Open menu'} onClick={onClickSideNavExpand} isActive={isSideNavExpanded} aria-expanded={isSideNavExpanded} />
my stuff
...</>)
}/>
Não entendi o método render aqui. Qual é a diferença entre esse método e entre usar "children", algo como:
<HeaderContainer>
<>
<HeaderMenuButton aria-label={isSideNavExpanded ? 'Close menu' : 'Open menu'} onClick={onClickSideNavExpand} isActive={isSideNavExpanded} aria-expanded={isSideNavExpanded} />
... my stuff ...
</>
</HeaderContainer>
Por que implementar da primeira maneira em vez da segunda? Acho que é muito menos legível...
passar uma função render é chamado
render prop
se
isSideNavExpanded
eonClickSideNavExpand
existirem dentro deHeaderContainer
, você não poderá passá-los para ,HeaderMenuButton
como no seu segundo exemplo.