65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: Change Inline CSS Conditionally Based on Component State
 | 
						|
localeTitle: تغيير CSS المضمنة بناء على حالة المكون
 | 
						|
---
 | 
						|
## تغيير CSS المضمنة بناء على حالة المكون
 | 
						|
 | 
						|
## تلميح 1:
 | 
						|
 | 
						|
ستقوم بالتحقق من طول هذا `this.state.input` بحيث تستخدم خاصية `.length` .
 | 
						|
 | 
						|
 `this.state.input.length 
 | 
						|
` 
 | 
						|
 | 
						|
## تلميح 2:
 | 
						|
 | 
						|
أنت تقوم بإدخال التعليمات البرمجية قبل بيان الإرجاع حتى يمكنك استخدام جافا سكريبت خالص `if/then` بيان.
 | 
						|
 | 
						|
## حل:
 | 
						|
 | 
						|
ستستخدم عبارة `if/then` للتحقق من قيمة هذا `this.state.input.length` . إذا كان أطول من 15 ، `inputStyle.border` `'3px solid red'` إلى `inputStyle.border` .
 | 
						|
 | 
						|
 `class GateKeeper extends React.Component { 
 | 
						|
  constructor(props) { 
 | 
						|
    super(props); 
 | 
						|
    this.state = { 
 | 
						|
      input: '' 
 | 
						|
    }; 
 | 
						|
    this.handleChange = this.handleChange.bind(this); 
 | 
						|
  } 
 | 
						|
  handleChange(event) { 
 | 
						|
    this.setState({ input: event.target.value }) 
 | 
						|
  } 
 | 
						|
  render() { 
 | 
						|
    let inputStyle = { 
 | 
						|
      border: '1px solid black' 
 | 
						|
    }; 
 | 
						|
    // change code below this line 
 | 
						|
    if (this.state.input.length > 15) { 
 | 
						|
      inputStyle.border = '3px solid red'; 
 | 
						|
    } 
 | 
						|
    // change code above this line 
 | 
						|
    return ( 
 | 
						|
      <div> 
 | 
						|
        <h3>Don't Type Too Much:</h3> 
 | 
						|
        <input 
 | 
						|
          type="text" 
 | 
						|
          style={inputStyle} 
 | 
						|
          value={this.state.input} 
 | 
						|
          onChange={this.handleChange} /> 
 | 
						|
      </div> 
 | 
						|
    ); 
 | 
						|
  } 
 | 
						|
 }; 
 | 
						|
` 
 | 
						|
 | 
						|
## حل
 | 
						|
 | 
						|
اكتب عبارة شرطية يتم تقييمها وفقًا لحالتك ، كما هو مذكور في وصف التحدي ، وتتحقق من طول الإدخال وتعين كائنًا جديدًا لمتغير inputStyle.
 | 
						|
 | 
						|
 `if (this.state.input.length > 15) { 
 | 
						|
  inputStyle = { 
 | 
						|
    border: '3px solid red' 
 | 
						|
  } 
 | 
						|
 } 
 | 
						|
` |