[React] React State & Props

Hannahhhยท2022๋…„ 8์›” 2์ผ
0

React

๋ชฉ๋ก ๋ณด๊ธฐ
8/30

๐Ÿ” React State & Props


  • State: ๋‚ด๋ถ€์—์„œ ๋ณ€ํ™”ํ•˜๋Š” ๊ฐ’ (๋‚˜์ด, ํ˜„์žฌ ์‚ฌ๋Š” ๊ณณ, ์ทจ์—… ์—ฌ๋ถ€, ๊ฒฐํ˜ผ/์—ฐ์•  ์—ฌ๋ถ€)



  • Props: ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’ (์ด๋ฆ„, ์„ฑ๋ณ„)


๐Ÿ‘€ Props

  • ์ปดํฌ๋„ŒํŠธ์˜ ์†์„ฑ(property)์— ํ•ด๋‹นํ•˜๋ฉฐ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’์ด๋‹ค.

  • ๋ถ€๋ชจ(์ƒ์œ„) ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’์ด๋ฉฐ, React ์ปดํฌ๋„ŒํŠธ๋Š” JavaScript ํ•จ์ˆ˜์™€ ํด๋ž˜์Šค๋กœ, props๋ฅผ ํ•จ์ˆ˜์˜ ์ „๋‹ฌ์ธ์ž(arguments)์ฒ˜๋Ÿผ ์ „๋‹ฌ๋ฐ›์•„ ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ™”๋ฉด์— ์–ด๋–ป๊ฒŒ ํ‘œ์‹œ๋˜๋Š”์ง€๋ฅผ ๊ธฐ์ˆ ํ•˜๋Š” React ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
    ๋”ฐ๋ผ์„œ, ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ตœ์ดˆ ๋ Œ๋”๋ง ๋  ๋•Œ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์€ ์ดˆ๊นƒ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋ชจ๋“  ํƒ€์ž…์˜ ๊ฐ’์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ์ฒด์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค.

  • ์ฝ๊ธฐ ์ „์šฉ(read-only)์ด๋‹ค.(ํ•จ๋ถ€๋กœ ๋ณ€๊ฒฝ X)
    props ์ˆ˜์ • ์‹œ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ๊ฐ’์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์˜๋„์น˜ ์•Š์€ side effect๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ ์ž ์ฝ๊ธฐ ์ „์šฉ ๊ฐ์ฒด์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค.



โœ” props ์‚ฌ์šฉ ๋ฐฉ๋ฒ•


1. ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์— ์ „๋‹ฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐ’๊ณผ ์†์„ฑ์„ ์ •์˜ํ•œ๋‹ค.


  • props๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด <parent>, <child>๋ผ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ ์–ธ ํ›„, <parent> ์ปดํฌ๋„ŒํŠธ ์•ˆ์— <child> ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
function Parent() {
  return (
    <div className="parent">
      <h1>I'm the parent</h1>
      <Child />
    </div>
  );
};

function Child() {
  return (
    <div className="child"></div>
  );
};

  • ์ปดํฌ๋„ŒํŠธ ์„ ์–ธ ํ›„, ์ „๋‹ฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐ’๊ณผ ์†์„ฑ์„ ์ •์˜ํ•œ๋‹ค.(์†์„ฑ๋ช… ์ž„์˜ ์ง€์ •x)

HTML์—์„œ ์†์„ฑ๊ณผ ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

<a href="www.codestates.com">Click me to visit Code States</a>

React์—์„œ ์†์„ฑ๊ณผ ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์œ„์™€ ์œ ์‚ฌํ•˜๋‚˜, ์ „๋‹ฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ์ค‘๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ์ค€๋‹ค.

<Child attribute={value} />

๋ฐ”๋กœ ์œ„์˜ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ด text ์†์„ฑ๊ณผ "I'm the eldest child" ๋ผ๋Š” ๋ฌธ์ž์—ด ๊ฐ’์„ ํ• ๋‹นํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

<Child text={"I'm the eldest child"} />



2. props๋ฅผ ์ด์šฉํ•ด ์ •์˜๋œ ๊ฐ’๊ณผ ์†์„ฑ์„ ์ „๋‹ฌํ•œ๋‹ค.

<parent> ์ปดํฌ๋„ŒํŠธ์—์„œ ์ „๋‹ฌํ•œ "I'm the eldest child" ๊ฐ’์„ <child> ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ฐ›๋Š”๋‹ค.
ํ•จ์ˆ˜์— ์ธ์ž๋ฅผ ์ „๋‹ฌํ•˜๋“ฏ์ด React ์ปดํฌ๋„ŒํŠธ์— props๋ฅผ ์ „๋‹ฌํ•˜๋ฉด props๊ฐ€ ํ•„์š”ํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์˜จ๋‹ค.

function Child(props) {
  return (
    <div className="child"></div>
  );
};



3. ์ „๋‹ฌ๋ฐ›์€ props๋ฅผ ๋ Œ๋”๋งํ•œ๋‹ค.


props๋ฅผ ๋ Œ๋”๋งํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” JSX์•ˆ์— ์ง์ ‘ ๋ถˆ๋Ÿฌ์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๋‹จ, props๋Š” ๊ฐ์ฒด์ด๋ฉฐ ์ด ๊ฐ์ฒด์˜ {key: value}๋Š” <parent> ์ปดํฌ๋„ŒํŠธ์—์„œ ์ •์˜ํ•œ {attribute: value}์˜ ํ˜•ํƒœ๋ฅผ ๋‹บ๋Š”๋‹ค.

๋”ฐ๋ผ์„œ, props์˜ value๋ฅผ dot notation์œผ๋กœ ์ ‘๊ทผํ•œ๋‹ค.

function Child(props) {
  return (
    <div className="child">
      <p>{props.text}</p>
    </div>
  );
};

props ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ์˜ˆ์‹œ

function Parent() {
  return (
    <div className="parent">
      <h1>I'm the parent</h1>
      <Child text={"I'm the eldest child"} />
      {/* Child ์ปดํฌ๋„ŒํŠธ์— ๋˜ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์„ props ๋กœ ์ „๋‹ฌํ•ด ๋ณด์„ธ์š” */}
      <Child />
    </div>
  );
}

function Child(props) {
  // console ์„ ์—ด์–ด props ์˜ ํ˜•ํƒœ๋ฅผ ์ง์ ‘ ํ™•์ธํ•˜์„ธ์š”.
  console.log("props : ", props); //props :  
{text: "I'm the eldest child"}

  return (
    <div className="child">
      <p>{props.text}</p>
    </div>
  );
}



โœ” props.children

prop๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ, ์—ฌ๋Š” ํƒœ๊ทธ์™€ ๋‹ซ๋Š” ํƒœ๊ทธ์˜ ์‚ฌ์ด์— value๋ฅผ ๋„ฃ์–ด ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

props.children ์„ ์ด์šฉํ•ด ํ•ด๋‹น value์— ์ ‘๊ทผํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š” ์œ„์˜ ์˜ˆ์‹œ์™€ ๋™์ผํ•˜๋‹ค.

function Parent() {
  return (
    <div className="parent">
        <h1>I'm the parent</h1>
        <Child>I'm the eldest child</Child>
    </div>
  );
};

function Child(props) {
  return (
    <div className="child">
        <p>{props.children}</p>
    </div>
  );
};



๐Ÿ”ฅ props ์˜ˆ์‹œ

Q . App ์ปดํฌ๋„ŒํŠธ์— ์žˆ๋Š” itemOne๊ณผ itemTwo๋ฅผ Learn ์ปดํฌ๋„ŒํŠธ์— props๋กœ ์ „๋‹ฌํ•˜์—ฌ, "React๋ฅผ ๋ฐฐ์šฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ๋ฌธ์ž์—ด์ด rendering ๋˜๋„๋ก ์ฝ”๋“œ๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.


const App = () => {
  const itemOne = "React๋ฅผ";
  const itemTwo = "๋ฐฐ์šฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.";

  return (
    <div className="App">
      {/* Learn ์ปดํฌ๋„ŒํŠธ์— itemOne ๊ณผ itemTwo ๋ฅผ
      props ๋กœ ์ „๋‹ฌํ•˜์„ธ์š” */}
      <Learn text = {`${itemOne} ${itemTwo}`}/>
    </div>
  );
};

const Learn = (props) => {
  // ์ „๋‹ฌ๋ฐ›์€ props ๋ฅผ ์•„๋ž˜ <div> tag ์‚ฌ์ด์— ์‚ฌ์šฉํ•˜์—ฌ
  // "React๋ฅผ ๋ฐฐ์šฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค" ๋ผ๋Š” ๋ฌธ์žฅ์ด ๋ Œ๋”๋ง๋˜๋„๋ก ์ปดํฌ๋„ŒํŠธ๋ฅผ ์™„์„ฑํ•˜์„ธ์š”
  return <div className="Learn">
       <p>{props.text}</p>  
         </div>;
};




๐Ÿ‘€ State


state๋Š” ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ด๋‹ค.

์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ state๋Š” ์‡ผํ•‘๋ชฐ ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ์˜ˆ๋กœ๋“ค๋ฉด, ๊ตฌ๋งคํ•  ๋ฌผ๊ฑด๊ณผ ๋‹น์žฅ์€ ๊ตฌ๋งคํ•˜์ง€ ์•Š์„ ๋ฌผ๊ฑด์„ ์ฒดํฌ๋ฐ•์Šค์— ์ฒดํฌํ•˜์—ฌ ๊ตฌ๋ถ„ ์ง€์„ ๋•Œ, check๋œ ์ƒํƒœ์™€ check๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.


์•„๋ž˜๋Š” check๋œ ์ƒํƒœ์— ๋”ฐ๋ผ ๋ณด์ด๋Š” ๊ธ€์”จ๊ฐ€ ๋‹ฌ๋ผ์ง€๋Š” ์ฝ”๋“œ์ด๋‹ค.

import React, { useState } from "react";

function CheckboxExample() {
  const [isChecked, setIsChecked] = useState(false);

  const handleChecked = (event) => {
    setIsChecked(event.target.checked);
  };
  return (
    <div className="App">
      <input type="checkbox" checked={isChecked} onChange={handleChecked} />
      <span>{isChecked ? "Checked!!" : "Unchecked"}</span>
    </div>
  );
}

์ด๋ฅผ ์‡ผํ•‘๋ชฐ์— ์ ์šฉํ•˜๋ฉด, ์ฒดํฌ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๊ตฌ๋งคํ•  ๋ฌผ๊ฑด์˜ ๊ฐœ์ˆ˜๋‚˜ ๊ตฌ๋งค ๊ธˆ์•ก์ด ๋ณ€๊ฒฝ๋˜๊ณ , ์ด์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž์˜ ํ™”๋ฉด๋„ ๋‹ฌ๋ผ์ง„๋‹ค.

์œ„์™€ ๊ฐ™์ด ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ ๋ณ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’, ์ฆ‰ ์ƒํƒœ๋Š” React state๋กœ ๋‹ค๋ค„์•ผํ•œ๋‹ค.



โœ” State hook, useState

React๋Š” state๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ useState๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

๋ฐ”๋กœ ์œ„์—์„œ ๋‹ค๋ฃฌ ์ฝ”๋“œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•๊ณผ ์ž‘๋™ ๋ฐฉ์‹์„ ์ดํ•ดํ•ด๋ณด์ž.


  • useState๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” importํ‚ค์›Œ๋“œ๋กœ React๋กœ๋ถ€ํ„ฐ useState๋ฅผ ๋ถˆ๋Ÿฌ์™€์•ผ ํ•œ๋‹ค.
import React, { useState } from "react";

  • ์ดํ›„, useState๋ฅผ ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ํ˜ธ์ถœํ•œ๋‹ค. useState์˜ ํ˜ธ์ถœ์€ "state"๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์œผ๋ฉฐ ๋ณ€์ˆ˜๋ช…์€ ์ž„์˜๋กœ ์ž‘์„ฑํ•œ๋‹ค. ์ด ๋ณ€์ˆ˜๋Š” React์— ์˜ํ•ด ํ•จ์ˆ˜๊ฐ€ ์ข…๋ฃŒ๋˜๋„ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š”๋‹ค.

  • isChecked, serIsChecked๋Š” useState ์˜ ๋ฆฌํ„ด๊ฐ’์„ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹นํ•œ ๋ณ€์ˆ˜์ด๋‹ค.

function CheckboxExample() {
// ์ƒˆ๋กœ์šด state ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ , ์—ฌ๊ธฐ์„œ๋Š” ์ด๊ฒƒ์„ isChecked ๋ผ ๋ถ€๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
  const [isChecked, setIsChecked] = useState(false);
}

์œ„์˜ ์ฝ”๋“œ๋ฅผ ํ’€์–ด์“ฐ๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

function CheckboxExample() {
  const stateHookArray = useState(false);
  const isChecked = stateHookArray[0];
  const setIsChecked = stateHookArray[1];
}

useState ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๋ฐฐ์—ด์˜ 0๋ฒˆ์งธ ์š”์†Œ๋Š” ํ˜„์žฌ state๋ณ€์ˆ˜์ด๊ณ , 1๋ฒˆ์งธ ์š”์†Œ๋Š” ๋ณ€์ˆ˜๋ฅผ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

๋˜ํ•œ, useState์˜ ์ธ์ž๋กœ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฐ’์€ state์˜ ์ดˆ๊นƒ๊ฐ’์ด๋‹ค.

const [state ์ €์žฅ ๋ณ€์ˆ˜, state ๊ฐฑ์‹  ํ•จ์ˆ˜] = useState(์ƒํƒœ ์ดˆ๊ธฐ ๊ฐ’);

์œ„์˜ ์Šˆ๋„์ฝ”๋“œ๋ฅผ ์‹ค์ œ๋กœ ์ ์šฉํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

function CheckboxExample() {
  const [isChecked, setIsChecked] = useState(false);
  // const [state ์ €์žฅ ๋ณ€์ˆ˜, state ๊ฐฑ์‹  ํ•จ์ˆ˜] = useState(state ์ดˆ๊นƒ๊ฐ’);

isChecked : state๋ฅผ ์ €์žฅํ•˜๋Š” ๋ณ€์ˆ˜
setIsChecked : state isChecked ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ํ•จ์ˆ˜
useState : state hook
false : state ์ดˆ๊นƒ๊ฐ’



  • state๋ฅผ ๊ฐฑ์‹ ํ•˜๋ ค๋ฉด state ๋ณ€์ˆ˜๋ฅผ ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š”๋ฐ, ์˜ˆ์‹œ์˜ ๊ฒฝ์šฐ setIsChecked ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

  • ์˜ˆ์‹œ์˜ ๊ฒฝ์šฐ, input[type=checkbox] JSX ์—˜๋ฆฌ๋จผํŠธ์˜ ๊ฐ’ ๋ณ€๊ฒฝ์— ๋”ฐ๋ผ์„œ isChecked ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ๋ธŒ๋ผ์šฐ์ €์—์„œ checked๋กœ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋‹ค๋ฉด, React์˜ isChecked ๋˜ํ•œ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•œ๋‹ค.

  • input[type=checkbox] ์—˜๋ฆฌ๋จผํŠธ์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด onChange ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋„๋ก ํ•ด์•ผํ•œ๋‹ค.

  • React๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ์ฒดํฌ๋ฐ•์Šค ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด onChange ์ด๋ฒคํŠธ๊ฐ€ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜์ธ handleChecked ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ์ด ํ•จ์ˆ˜๊ฐ€ setIsChecked ๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋œ๋‹ค. setIsChecked ๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ํ˜ธ์ถœ๋œ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ isChecked ๋ณ€์ˆ˜๊ฐ€ ๊ฐฑ์‹ ๋˜๋ฉฐ, React๋Š” ์ƒˆ๋กœ์šด isChecked ๋ณ€์ˆ˜๋ฅผ CheckboxExample ์ปดํฌ๋„ŒํŠธ์— ๋„˜๊ฒจ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‹ค์‹œ ๋ Œ๋”๋ง ํ•œ๋‹ค.

function CheckboxExample() {
  const [isChecked, setIsChecked] = useState(false);

  const handleChecked = (event) => {
    setIsChecked(event.target.checked);
  };

  return (
    <div className="App">
      <input type="checkbox" checked={isChecked} onChange={handleChecked} />
      <span>{isChecked ? "Checked!!" : "Unchecked"}</span>
    </div>
  );
}



โœ” state hook ์‚ฌ์šฉ ์‹œ ์ฃผ์˜์ 


React ์ปดํฌ๋„ŒํŠธ๋Š” state๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ์ƒˆ๋กญ๊ฒŒ ํ˜ธ์ถœ๋˜๊ณ  ๋ฆฌ๋ Œ๋”๋ง ๋˜๋ฉฐ, React state๋Š” ์ƒํƒœ ๋ณ€๊ฒฝ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค.(๊ฐœ๋ฐœ์ž์˜ ์•ฝ์†!, ์˜ˆ์‹œ์˜ ๊ฒฝ์šฐ setIsChecked)

๊ฐ•์ œ๋กœ ๋ณ€๊ฒฝ์„ ์‹œ๋„ํ•  ๊ฒฝ์šฐ, ๋ฆฌ๋ Œ๋”๋ง์ด ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ state๊ฐ€ ์ œ๋Œ€๋กœ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š”๋‹ค.




Reference: ์ฝ”๋“œ์Šคํ…Œ์ด์ธ 

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

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด