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 игнорирует и пропускает его. |