Sim, você pode, mas em vez de em branco, simplesmente retorne null
se não desejar render
nada do componente, como este:
return (null);
Outro ponto importante é que, dentro do JSX, se você estiver renderizando um elemento condicionalmente, no caso de condition=false
, poderá retornar qualquer um desses valores false, null, undefined, true
. Conforme DOC :
booleans (true/false), null, and undefined
são filhos válidos , eles serão ignorados significa que eles simplesmente não processam.
Todas essas JSX
expressões renderizarão a mesma coisa:
<div />
<div></div>
<div>{false}</div>
<div>{null}</div>
<div>{undefined}</div>
<div>{true}</div>
Exemplo:
Somente valores ímpares serão renderizados, porque estamos retornando para valores pares null
.
const App = ({ number }) => {
if(number%2) {
return (
<div>
Number: {number}
</div>
)
}
return (null); //===> notice here, returning null for even values
}
const data = [1,2,3,4,5,6];
ReactDOM.render(
<div>
{data.map(el => <App key={el} number={el} />)}
</div>,
document.getElementById('app')
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id='app' />
return null
ereturn (null)
eles são mesmo :)return
, o React apresenta um erro. Entãoreturn null
é necessário.Algumas respostas estão um pouco incorretas e apontam para a parte errada dos documentos:
Se você deseja que um componente não renderize nada, basta retornar
null
, conforme o documento :Se você tentar retornar,
undefined
por exemplo, receberá o seguinte erro:Como apontado por outras respostas,
null
,true
,false
eundefined
são filhos válidas e úteis para a prestação condicional dentro de seu JSX, mas você quer que seu componente para esconder / render nada, basta retornarnull
.fonte
Sim, você pode retornar um valor vazio de um método de renderização React.
Você pode retornar qualquer um dos seguintes:
false, null, undefined, or true
De acordo com os documentos :
Você poderia escrever
No entanto,
return null
é o mais preferido, pois significa que nada é retornadofonte
Ligeiramente fora de tópico, mas se você precisar de um componente baseado em classe que nunca renderize nada e estiver feliz em usar alguma sintaxe de ES ainda padronizada, convém:
Esse é basicamente um método de seta que atualmente requer o plug - in Babel das propriedades da classe transform . O React não permitirá que você defina um componente sem a
render
função e esta é a forma mais concisa que atende a esse requisito que posso pensar.Atualmente, estou usando esse truque em uma variante do ScrollToTop emprestada da
react-router
documentação. No meu caso, há apenas uma única instância do componente e ele não renderiza nada; portanto, uma forma curta de "tornar nulo" se encaixa bem nele.fonte
Podemos voltar assim,
fonte
null
?Retornar valor falso na função render () não renderiza nada. Então você pode fazer
fonte