Tak, możesz, ale zamiast pustego pola, po prostu wróć, null
jeśli nie chcesz render
niczego z komponentu, na przykład:
return (null);
Inną ważną kwestią jest to, że wewnątrz JSX, jeśli renderujesz element warunkowo, to w przypadku condition=false
możesz zwrócić dowolną z tych wartości false, null, undefined, true
. Zgodnie z DOC :
booleans (true/false), null, and undefined
są prawidłowymi dziećmi , zostaną zignorowane, co oznacza, że po prostu się nie renderują.
Wszystkie te JSX
wyrażenia będą odpowiadać temu samemu:
<div />
<div></div>
<div>{false}</div>
<div>{null}</div>
<div>{undefined}</div>
<div>{true}</div>
Przykład:
Renderowane będą tylko wartości nieparzyste, ponieważ zwracamy wartości parzyste 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
ireturn (null)
są takie same :)return
React wyświetla błąd. Więcreturn null
jest wymagane.Niektóre odpowiedzi są nieco niepoprawne i wskazują na niewłaściwą część dokumentów:
Jeśli chcesz, aby komponent nic nie renderował, po prostu zwróć
null
, zgodnie z dokumentem :Jeśli spróbujesz
undefined
na przykład zwrócić, pojawi się następujący błąd:Jak podkreślił innych odpowiedzi,
null
,true
,false
iundefined
są ważne dla dzieci, które jest przydatne do renderowania warunkowego wewnątrz swojej JSX, ale chcesz, aby komponent do ukrycia / czynią nic, po prostu wrócićnull
.źródło
Tak, możesz zwrócić pustą wartość z metody renderowania React.
Możesz zwrócić dowolne z poniższych:
false, null, undefined, or true
Według dokumentów :
Możesz pisać
Jednak
return null
jest to najbardziej preferowane, ponieważ oznacza, że nic nie jest zwracaneźródło
Nieco niezwiązane z tematem, ale jeśli kiedykolwiek potrzebowałeś komponentu opartego na klasach, który nigdy niczego nie renderuje i jesteś szczęśliwy, używając jakiejś jeszcze nie znormalizowanej składni ES, możesz chcieć:
Jest to w zasadzie metoda strzałkowa, która obecnie wymaga wtyczki Babel transform-class-properties . React nie pozwoli ci zdefiniować komponentu bez
render
funkcji i jest to najbardziej zwięzła forma spełniająca ten wymóg, o jakim mogę pomyśleć.Obecnie używam tej sztuczki w wariancie ScrollToTop zapożyczonym z
react-router
dokumentacji. W moim przypadku jest tylko jedna instancja komponentu i nic nie renderuje, więc krótka forma "render null" pasuje tam dobrze.źródło
Możemy tak wrócić
źródło
null
?Zwrócenie fałszywej wartości w funkcji render () nic nie wyświetli. Możesz więc po prostu zrobić
źródło