Programming/React

[ React ] ๊ฐ•์ œ ๋ Œ๋”๋ง

seulye 2023. 5. 11. 14:00

 

if (params.data.stgyField === 'attribute') {
            const temp = selectorDetailList2;

            for (let i = 0; i < temp.length; i += 1) {
                if (temp[i].stgyField === 'value' || temp[i].stgyField === 'minValue' || temp[i].stgyField === 'maxValue') {
                    temp[i].stgyValue = '';
                }
            }
            setSelectorDetailList2([]);
            setSelectorDetailList2(temp);
        }

setSelectorDetailList2([]); ์ด ๋ถ€๋ถ„์„ ์ž…๋ ฅํ•˜์ง€ ์•Š์œผ๋ฉด ๊ทธ๋ฆฌ๋“œ๊ฐ€ ๋ฐ”๋กœ ๋ฐ”๋€Œ์ง€ ์•Š๋”๋ผ๊ณ . ์™œ ๊ทธ๋Ÿด๊นŒ?

 

 

`setSelectorDetailList2([])`๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ด์œ ๋Š” React์˜ ์ƒํƒœ(state)๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‹ค์‹œ ๋ Œ๋”๋งํ•˜๊ณ , ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ UI์— ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค. React๋Š” ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‹ค์‹œ ๊ทธ๋ฆฌ๊ณ  ์—…๋ฐ์ดํŠธ๋œ ๋‚ด์šฉ์„ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

`setSelectorDetailList2([])`๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ  `setSelectorDetailList2(temp)`๋งŒ ํ˜ธ์ถœํ•˜๋Š” ๊ฒฝ์šฐ, React๋Š” `temp` ๊ฐ์ฒด์˜ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‹ค์‹œ ๋ Œ๋”๋งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” React์˜ ์ƒํƒœ ์—…๋ฐ์ดํŠธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

React์—์„œ ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๋•Œ, ์ƒํƒœ๋Š” ๋ถˆ๋ณ€์„ฑ(immutability)์„ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. `temp` ๊ฐ์ฒด๋ฅผ ์ˆ˜์ •ํ•˜๋”๋ผ๋„ ๊ฐ์ฒด ์ž์ฒด์˜ ์ฐธ์กฐ๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— React๋Š” ์ด๋ฅผ ๋ณ€๊ฒฝ์œผ๋กœ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๊ณ  ๋ Œ๋”๋ง์„ ์Šคํ‚ตํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, `setSelectorDetailList2([])`๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ƒํƒœ๋ฅผ ์ „๋‹ฌํ•จ์œผ๋กœ์จ React์—๊ฒŒ ๋ณ€๊ฒฝ์„ ์•Œ๋ฆฌ๊ณ  ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‹ค์‹œ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ, `setSelectorDetailList2([])`๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๊ทธ๋ฆฌ๋“œ๊ฐ€ ๋ฐ”๋กœ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” React์˜ ์ƒํƒœ ์—…๋ฐ์ดํŠธ ๋ฉ”์ปค๋‹ˆ์ฆ˜๊ณผ ๋ถˆ๋ณ€์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ•˜๋Š” ๊ทœ์น™ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

 

* ์ฐธ๊ณ ํ•  ๊ฒƒ

https://db2dev.tistory.com/entry/React-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8-%EA%B0%95%EC%A0%9C-Re-render%ED%95%98%EA%B8%B0-re-render-%EC%9B%90%EB%A6%AC%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%ED%95%B4

 

[React] ์ปดํฌ๋„ŒํŠธ ๊ฐ•์ œ Re-renderํ•˜๊ธฐ (re-render ์›๋ฆฌ์— ๋Œ€ํ•œ ์ดํ•ด)

์›๊ธ€: How and when to force a React component to re-render (์ฃผ์˜โ• ์˜์—ญ ๋‹ค์ˆ˜ ์กด์žฌ) ๋ฆฌ์•กํŠธ๋Š” ๋ณดํ†ต ์ž๋™์ ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฆฌ๋ Œ๋”ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ•์ œ์ ์œผ๋กœ ๋ฆฌ์•กํŠธ๊ฐ€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฆฌ๋ Œ๋”ํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”

db2dev.tistory.com