learn-reactjs
learn-reactjs copied to clipboard
Компонент возвращает null. Не тенарный оператор. Пример должен показать именно это.
https://github.com/stsiushkevich/learn-reactjs/blob/d68443a7325434e0db97b802c2e5c11bd084bc18/src/main/webapp/WEB-INF/pages/basics/conditionalRendering/conditionalRendering.jsp#L125
function DangerAlert(props) {
return (
<h3 className="alert alert-danger">{props.text}</h3>
);
}
{this.state.isDangerAlertShowed ?
<DangerAlert text={'Внимание! В приложении возникли некоторые проблемы!'} /> : null}
тогда как в https://ru.reactjs.org/docs/conditional-rendering.html#preventing-component-from-rendering
function WarningBanner(props) {
if (!props.warn) {
return null;
}
return (
<div className="warning">
Предупреждение!
</div>
);
}
<WarningBanner warn={this.state.showWarning} />
Здравствуйте! На самом деле пример на моём сайте и оригинал - оба отражают отрисовку компонента по условию. Я использовал тернарный оператор, так как компонент DangerAlert намеренно максимально прост и не содержит никаких условий. Я вынес это условие из него наружу. Условие, показывать DangerAlert или нет определяет именно внешний код. Тернарный оператор удобнее тем, что сокращает код.
Кстати, есть запись ещё короче:
{this.state.isDangerAlertShowed && <DangerAlert/>}
Именно такую запись я использую почти всегда в своём коде.
На самом деле пример на моём сайте и оригинал - оба отражают отрисовку компонента по условию.
Насколько помню ситуацию (а помню плохо, за давностью), там нужно показать что возвращается, а не как делать удобнее