๐Ÿ“–[React]Lifting State Up

ํ˜ฑยท2022๋…„ 7์›” 13์ผ

React

๋ชฉ๋ก ๋ณด๊ธฐ
15/28

๐Ÿ’— Shared State

๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ถ€๋ชจ ์ปจํฌ๋„ŒํŠธ์˜ state๋ฅผ ํ™œ์š”ํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ 
state์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

๐Ÿ’— Lifting State Up

ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์˜ state๋ฅผ ๊ณตํ†ต ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ์˜ฌ๋ฆผ!

//๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ

function Calculator(props){
  const [temperature, setTemperature] = useState('');
  
  const handleChange = (event) => {
    setTemperature(event.target.value);
  }
  
  return(
    <fieldset>
      <legend>์„ญ์”จ ์˜จ๋„๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”: </legent>
      <input>
        value = {temperature}
        onChange = {handleChange}/>
      <BollingVerdict
        celsius={parseFloat(temperature)}/>
	</fieldset>
	);
}
      

//์ž์‹ ์ปดํฌ๋„ŒํŠธ
function BollingVerdict(props){
        if(props.celsius >= 100 ) {
          return <p>๋ฌผ์ด ๋“์Šต๋‹ˆ๋‹ค. </p>;
       }
        return <p>๋ฌผ์ด ๋“์ง€ ์•Š์Šต๋‹ˆ๋‹ค.</p>;
      }

์œ„์˜ ์ฝ”๋“œ์—์„œ input์„ ๋‹ค๋ฅธ component๋กœ ๋ถ„๋ฆฌ์‹œ์ผœ ๋ณด์ž

const scaleNames = {
  c: '์„ญ์”จ',
  f: 'ํ™”์”จ'
};

function TemperatureInput(props) {
  const [temperature, setTemperature] = useState('');
  
  const handleChange = (event) => {
    setTemperature(event.target.value);
  }
  
  return (
  	<fieldset>
      <legend>์„ญ์”จ ์˜จ๋„๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”: </legent>
      <input>
        value = {temperature}
        onChange = {handleChange}/>
      <BollingVerdict
        celsius={parseFloat(temperature)}/>
	</fieldset>
	);
}
      

      
function Calculator(props) {
        return (
          <div>
            <TemperatureInput scale="c"/>
            <TemperatureInput scale="f"/>
         </div>
          );
        }
profile
new blog: https://hae0-02ni.tistory.com/

0๊ฐœ์˜ ๋Œ“๊ธ€