{"id":733,"date":"2022-03-24T23:54:13","date_gmt":"2022-03-24T14:54:13","guid":{"rendered":"http:\/\/mukgee.com\/?p=733"},"modified":"2022-03-25T00:05:37","modified_gmt":"2022-03-24T15:05:37","slug":"react%ec%9d%98-setstate%ec%9d%98-%eb%b9%84%eb%8f%99%ea%b8%b0%ec%84%b1","status":"publish","type":"post","link":"http:\/\/mukgee.com\/?p=733","title":{"rendered":"React\uc758 setState\uc758 \ube44\ub3d9\uae30\uc131"},"content":{"rendered":"<p>react \ub85c \uc11c\ube44\uc2a4\ub97c \uad6c\ud604\ud558\uba74\uc11c setState \uc758 \ube44\ub3d9\uae30\uc131 \ub54c\ubb38\uc5d0 \ub9ce\uc740 \uc5b4\ub824\uc6c0\uc744 \uacaa\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>jquery \uc5d0 \uc775\uc219\ud574\uc11c \ub9ac\uc561\ud2b8\uc2a4\ub7fd\uc9c0 \uc54a\uc740 \ucf54\ub4dc \uc2a4\ud0c0\uc77c\uc774\uc5ec\uc11c \uadf8\ub7f0\uc9c0 \uad6c\uae00\ub9c1\ud574\ub3c4 \uc27d\uac8c \ucc3e\uc744 \uc218 \uc5c6\uc5b4 \uc815\ub9ac\ud574\ubcf4\ub824\uace0 \ud569\ub2c8\ub2e4.(\uacb0\uad6d \uad6c\uae00\ub9c1\ud55c \ub0b4\uc6a9\uc785\ub2c8\ub2e4.)<\/p>\n<p>list \uc5d0\uc11c \uccab\ubc88\uc9f8 list \ub97c \ubf51\uc544\uc11c first\uc5d0 \ub123\uace0 \ub2e4\uc2dc\ud55c\ubc88 \ub354 \ubf51\uc544\uc11c second\uc5d0 \ub123\ub294 \ucf54\ub4dc\ub97c \uc0dd\uac01\ud574\ubd05\uc2dc\ub2e4.<\/p>\n<pre class=\"lang:js decode:true\">const [list, setList] = useState(null);\r\nconst [first, setFirst] = useState(null);\r\nconst [second, setSecond] = useState(null);\r\n\r\nsetList([1,2,3]);\r\nsetFirst(list.shift(0)); \/\/Cannot read properties of undefined (reading 'shift')\r\nsetSecond(list.shift(0));<\/pre>\n<p>\ub9ac\uc561\ud2b8\uc758 function \ucef4\ud3ec\ub10c\ud2b8\uc5d0\uc11c hook \uc911 \ud558\ub098\uc778 useState\ub294 \ube44\ub3d9\uae30\uc801\uc73c\ub85c \uc2e4\ud589\ub418\uc5b4 \ub9ac\ub79c\ub358\ub9c1\uc774 \ub41c \ud6c4\uc5d0 state \uac12\uc744 update \ud558\uae30 \ub54c\ubb38\uc5d0 \uc704\uc758 \ucf54\ub4dc\ub294 \uc2e4\ud589\uc2dc \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/p>\n<p>react\uc5d0\uc11c\ub294 \ube44\ub3d9\uae30\uc131\uc744 \uc81c\uc5b4\ud558\uae30 \uc704\ud574 useEffect \ub97c \uc0ac\uc6a9\ud558\ub77c\uace0 \uac00\uc774\ub4dc \ud569\ub2c8\ub2e4.<\/p>\n<p>\uc704\uc758 \ucf54\ub4dc\ub97c \ud574\uacb0\ud558\uae30 \uc704\ud574\uc11c\ub294 \uae08\ubc29 \uad6c\uae00\ub9c1\ud558\uba74 \uacb0\uacfc\ub97c \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:js decode:true\">const [list, setList] = useState(null);\r\nconst [first, setFirst] = useState(null);\r\nconst [second, setSecond] = useState(null);\r\nuseEffect(()=&gt;{\r\n    setFirst(list.shift(0));  \r\n    setSecond(list.shift(0));\r\n},list);\r\nsetList([1,2,3]);\r\n\r\n<\/pre>\n<p>\ucf54\ub4dc\ub97c \ub9cc\ub4e4\ub2e4\ubcf4\uba74 callback \ucc98\ub9ac \uc5c6\uc774 \ubc14\ub85c list\uc758 \uac12\uc744 \uc81c\uc5b4\ud558\uace0 \uc2f6\uc744\ub54c\ub3c4 \ub9ce\uc774 \uc788\uc2b5\ub2c8\ub2e4.<br \/>\n\uadf8\ub7fc \uadf8\ub54c\ub9c8\ub2e4 useEffect \ud568\uc218 \uc18d\uc5d0\uc11c \ub85c\uc9c1\uc744 \uc218\ud589\ud574\uc57c\ud558\ub294 \ubd88\ud3b8\ud568\uc774 \uba38\ub9ac\uc18d\uc744 \ub5a0\ub098\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub798\uc11c \uccab\ubc88\uc9f8 \ucf54\ub4dc\ub97c \uc2e4\ud589\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc774 \uacc4\uc18d \uad81\uae08\ud588\uc2b5\ub2c8\ub2e4.<br \/>\n\uacb0\ub860\uc801\uc73c\ub85c function \ucef4\ud3ec\ub10c\ud2b8\uc5d0\uc11c\ub294 \uc704\uc758 \ucf54\ub4dc\ub97c \uc2e4\ud589\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc740 \uc5c6\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub9ac\uc561\ud2b8\uc758 setSate\uc758 \uacbd\uc6b0 closure \ub85c useState\uc758 \ub450\ubc88\uc9f8 return \uac12\uc778 set \ud568\uc218\ub97c return \ud558\ub294\ub370 closure \ud2b9\uc131\uc0c1 \ud604\uc7ac \ub79c\ub354\ub9c1 \ub41c state(list=null)\ub97c \ubcf4\uae30 \ub54c\ubb38\uc5d0 \ub9ac\ub79c\ub354\ub9c1 \uc774\ud6c4 list \uc758 set \ud568\uc218\uac00 \ud638\ucd9c\ub418\uae30 \uc804\uae4c\uc9c0\ub294 \uacc4\uc18d null \uc785\ub2c8\ub2e4.<br \/>\nPromise\ub97c \uc0ac\uc6a9\ud558\uc5ec \uccb4\uc774\ub2dd \ud558\uc5ec \uc21c\uc11c\ub97c \uc81c\uc5b4\ud560 \uc218 \uc788\ub2e4\uace0 \ud569\ub2c8\ub2e4\ub9cc \uc5ec\uac04 \uae4c\ub2e4\ub85c\uc6b4\uac8c \uc544\ub2c8\ub124\uc694.<br \/>\nJquery \uae30\uc900\uc73c\ub85c \ubcf4\uba74 DOM\uc774 \ub80c\ub354\ub9c1 \ub418\ub294 \uc21c\uc11c\uc5d0 \ub530\ub77c event \ub97c \uc0dd\uc131\ud574\uc11c \ub85c\uc9c1\uc758 \uc2e4\ud589 \uc21c\uc11c\ub97c \uc81c\uc5b4\ud588\uc73c\ub098, react\uc758 \uacbd\uc6b0 react\uc758 lifecycle \uc744 \uc774\ud574\ud558\uace0 state \uc758 \ubcc0\ud654\ub97c \uc81c\uc5b4\ud574\uc57c\ud558\ub294 \uac83\uc774 \ubc88\uac70\ub7ec\uc6cc \ubcf4\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc774\ub7f0 \ubd88\ud3b8\ud568\uc744 \uc800\ub9cc \ub290\ub080\uac74 \uc544\ub2cc\uac83 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uad6c\uae00\ub9c1\ud574\uc11c \ucc3e\uc740 \uc5b4\ub5a4 \ube14\ub85c\uadf8\ub294 \uc774\ub7f0 \ubd88\ud3b8\ud568 \ub54c\ubb38\uc5d0 Mobx \ub77c\ub294 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc0ac\uc6a9\ud574\uc11c local \ubcc0\uc218\ub85c \uad00\ub9ac\ud55c\ub2e4\uace0 \ud569\ub2c8\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>\ub610 Mobx\ub77c\ub294 \ub77c\uc774\ube0c\ub7ec\ub77c\ub3c4 \uacf5\ubd80\ud574\uc57c\ud558\ub294\uad70\uc694.<\/p>\n<p>React\uc758 \ub9ce\uc740 \uc7a5\uc810\uc774 \uc788\uaca0\uc9c0\ub9cc React\uac00 \uac00\uc9c4 \ub2e8\uc810\uc744 \ucee4\ubc84\ud558\uae30 \uc704\ud55c \ub108\ubb34 \ub9ce\uc740 \ucd94\uac00\uc801\uc778 \ucef4\ud3ec\ub10c\ud2b8\ub97c \ud559\uc2b5\ud574\uc57c\ud558\ub294\uac8c \ub354 \ud070 \ub2e8\uc810\uc73c\ub85c \ub2e4\uac00\uc635\ub2c8\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>\ucc38\uace0 : https:\/\/zigsong.github.io\/2021\/10\/16\/fe-await-setstate\/<\/p>\n<p>https:\/\/simsimjae.tistory.com\/448<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"fXsdw3qKMu\"><p><a href=\"https:\/\/techblog.woowahan.com\/2599\/\">React\uc5d0\uc11c Mobx \uacbd\ud5d8\uae30 (Redux\uc640 \ube44\uad50\uae30)<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;React\uc5d0\uc11c Mobx \uacbd\ud5d8\uae30 (Redux\uc640 \ube44\uad50\uae30)&#8221; &#8212; \uc6b0\uc544\ud55c\ud615\uc81c\ub4e4 \uae30\uc220\ube14\ub85c\uadf8\" src=\"https:\/\/techblog.woowahan.com\/2599\/embed\/#?secret=8JqZmv3ibD#?secret=fXsdw3qKMu\" data-secret=\"fXsdw3qKMu\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>react \ub85c \uc11c\ube44\uc2a4\ub97c \uad6c\ud604\ud558\uba74\uc11c setState \uc758 \ube44\ub3d9\uae30\uc131 \ub54c\ubb38\uc5d0 \ub9ce\uc740 \uc5b4\ub824\uc6c0\uc744 \uacaa\uc5c8\uc2b5\ub2c8\ub2e4. jquery \uc5d0 \uc775\uc219\ud574\uc11c \ub9ac\uc561\ud2b8\uc2a4\ub7fd\uc9c0 \uc54a\uc740 \ucf54\ub4dc \uc2a4\ud0c0\uc77c\uc774\uc5ec\uc11c \uadf8\ub7f0\uc9c0 \uad6c\uae00\ub9c1\ud574\ub3c4 \uc27d\uac8c \ucc3e\uc744 \uc218 \uc5c6\uc5b4 \uc815\ub9ac\ud574\ubcf4\ub824\uace0&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[3],"tags":[77,30],"aioseo_notices":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/posts\/733"}],"collection":[{"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/mukgee.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=733"}],"version-history":[{"count":6,"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/posts\/733\/revisions"}],"predecessor-version":[{"id":740,"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/posts\/733\/revisions\/740"}],"wp:attachment":[{"href":"http:\/\/mukgee.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/mukgee.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=733"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/mukgee.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}