Sí, puede hacerlo, pero en lugar de dejarlo en blanco, simplemente regrese null
si no desea render
nada del componente, como este:
return (null);
Otro punto importante es que, dentro de JSX, si está representando un elemento condicionalmente, en caso de condition=false
que pueda, puede devolver cualquiera de estos valores false, null, undefined, true
. Según DOC :
booleans (true/false), null, and undefined
son niños válidos , serán ignorados, lo que significa que simplemente no representan.
Todas estas JSX
expresiones se convertirán en lo mismo:
<div />
<div></div>
<div>{false}</div>
<div>{null}</div>
<div>{undefined}</div>
<div>{true}</div>
Ejemplo:
Solo se generarán valores impares, porque para valores pares estamos regresando 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
yreturn (null)
son iguales :)return
entonces React da un error. Entoncesreturn null
se requiere.Algunas respuestas son ligeramente incorrectas y apuntan a la parte incorrecta de los documentos:
Si desea que un componente no represente nada, solo regrese
null
, según el documento :Si intenta regresar,
undefined
por ejemplo, obtendrá el siguiente error:Como se ha comentado en otras respuestas,
null
,true
,false
yundefined
son válidos los niños lo que es útil para la representación condicional dentro de su JSX, pero desea que el componente para ocultar / hacer nada, sólo volvernull
.fuente
Sí, puede devolver un valor vacío de un método de procesamiento React.
Puede devolver cualquiera de los siguientes:
false, null, undefined, or true
Según los documentos :
Podrías escribir
Sin embargo,
return null
es el más preferido ya que significa que no se devuelve nadafuente
Ligeramente fuera de tema, pero si alguna vez necesitó un componente basado en la clase que nunca representa nada y está contento de usar una sintaxis ES aún por estandarizar, es posible que desee ir:
Este es básicamente un método de flecha que actualmente requiere el complemento Babel transform-class-properties . React no le permitirá definir un componente sin la
render
función y esta es la forma más concisa que satisface este requisito que se me ocurre.Actualmente estoy usando este truco en una variante de ScrollToTop prestada de la
react-router
documentación. En mi caso, solo hay una única instancia del componente y no procesa nada, por lo que una forma corta de "render null" encaja bien allí.fuente
Podemos volver así,
fuente
null
?Devolver el valor falso en la función render () no representará nada. Entonces solo puedes hacer
fuente