61 lines
3.0 KiB
Markdown
61 lines
3.0 KiB
Markdown
![]() |
---
|
|||
|
title: Use && for a More Concise Conditional
|
|||
|
localeTitle: Используйте && для более сжатого условного
|
|||
|
---
|
|||
|
## Используйте && для более сжатого условного
|
|||
|
|
|||
|
Приведенный пример
|
|||
|
```
|
|||
|
{condition && <p>markup</p>}
|
|||
|
```
|
|||
|
|
|||
|
который демонстрируется ниже, используя условие this.state.dinnerCooked boolean. Если логическое значение true, разметка, включенная в {}, будет отображаться, если не отобразится
|
|||
|
```
|
|||
|
class MyComponent extends React.Component {
|
|||
|
constructor(props) {
|
|||
|
super(props);
|
|||
|
this.state = {
|
|||
|
dinnerCooked: true
|
|||
|
}
|
|||
|
}
|
|||
|
render() {
|
|||
|
return (
|
|||
|
<div>
|
|||
|
{this.state.dinnerCooked &&<h1>Dinner is Cooked!</h1>}//h1 tag contents will be displayed
|
|||
|
</div>
|
|||
|
);
|
|||
|
}
|
|||
|
};
|
|||
|
|
|||
|
## Hint:
|
|||
|
|
|||
|
You don't have to do a full ```if/then``` statement. Just write the condition you are checking.
|
|||
|
|
|||
|
## Solution:
|
|||
|
|
|||
|
As you can see, you don't have to write the full ```if/then``` statement. We only need to check the condition and see if it returns ```true``` or ```false```. In this case, we are checking the value of ```display```. If the value is ```true```, then you return the value to the right of ```&&```, which is ```<h1>Displayed!</h1>```. If the condition is ```false```, it returns nothing.
|
|||
|
```
|
|||
|
|
|||
|
JSX класс MyComponent расширяет React.Component { конструктор (реквизит) { супер (реквизит); this.state = { Ужин: ложный }
|
|||
|
} render () {
|
|||
|
вернуть (
|
|||
|
|
|||
|
{this.state.dinnerCooked &&
|
|||
|
|
|||
|
# Ужин готов!
|
|||
|
|
|||
|
} // Содержимое тега h1 НЕ будет отображаться display: true } this.toggleDisplay = this.toggleDisplay.bind (this); } toggleDisplay () { this.setState ({ display:! this.state.display }); } render () { // изменить код ниже этой строки вернуть (
|
|||
|
|
|||
|
Переключить дисплей {this.state.display &&
|
|||
|
|
|||
|
# Показано!
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
); } }; \`\` \` Объяснение из [документации ReactJS.org](https://reactjs.org/docs/conditional-rendering.html)
|
|||
|
|
|||
|
Вы можете вставлять любые выражения в JSX, обертывая их фигурными фигурными скобками. Это включает в себя логический & JavaScript-оператор JavaScript. Это может быть удобно для условного включения элемента
|
|||
|
|
|||
|
Это работает, потому что в JavaScript истинное выражение && всегда оценивает выражение, а выражение false && всегда оценивается как false.
|
|||
|
|
|||
|
Поэтому, если условие истинно, элемент справа после && появится на выходе. Если он неверен, React игнорирует и пропускает его.
|