Да, вы можете, но вместо пустого просто верните, null
если вы ничего не хотите render
от компонента, например:
return (null);
Еще один важный момент: внутри JSX, если вы визуализируете элемент условно, то в случае condition=false
, вы можете вернуть любое из этих значений false, null, undefined, true
. Согласно DOC :
booleans (true/false), null, and undefined
являются допустимыми дочерними элементами, они будут игнорироваться, что означает, что они просто не отображаются.
Все эти JSX
выражения будут отображать одно и то же:
<div />
<div></div>
<div>{false}</div>
<div>{null}</div>
<div>{undefined}</div>
<div>{true}</div>
Пример:
Будут отображаться только нечетные значения, потому что для четных значений мы возвращаем 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
иreturn (null)
они одинаковые :)return
React выдает ошибку. Итак,return null
требуется.Некоторые ответы немного неверны и указывают не на ту часть документов:
Если вы хотите, чтобы компонент ничего не отображал, просто верните его
null
, как указано в документе :undefined
Например, если вы попытаетесь вернуться , вы получите следующую ошибку:Как отмечали другие ответы,
null
,true
,false
иundefined
являются действительными дети что полезно для условного рендеринга внутри вашего JSX, но вы хотите , чтобы ваш компонент , чтобы скрыть / не делают ничего, просто вернутьсяnull
.источник
Да, вы можете вернуть пустое значение из метода рендеринга React.
Вы можете вернуть любое из следующего:
false, null, undefined, or true
Согласно документам :
Вы могли написать
Однако
return null
наиболее предпочтителен, поскольку означает, что ничего не возвращается.источник
Немного не по теме, но если вам когда-либо был нужен компонент на основе классов, который никогда ничего не отображает, и вы счастливы использовать какой-то еще не стандартизованный синтаксис ES, вы можете пойти:
Это в основном метод стрелки, для которого в настоящее время требуется плагин Babel transform-class-properties . React не позволит вам определить компонент без
render
функции, и это самая краткая форма, удовлетворяющая этому требованию, о котором я могу думать.В настоящее время я использую этот трюк в варианте ScrollToTop, заимствованном из
react-router
документации. В моем случае есть только один экземпляр компонента, и он ничего не отображает, так что короткая форма «render null» здесь хорошо подходит.источник
Мы можем вернуться вот так,
источник
null
?Возвращение ложного значения в функции render () ничего не отобразит. Так что ты можешь просто сделать
источник