๐Ÿ”ฅTroubleShooting - ํฌ์ผ“๋ชฌ ์„ ํƒ/์‚ญ์ œ ๋กœ์ง ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

์Š˜ยท2025๋…„ 2์›” 4์ผ

๐Ÿ”ฅ Trouble Shooting

๋ชฉ๋ก ๋ณด๊ธฐ
5/23

๐Ÿšจ ๋ฌธ์ œ ์ƒํ™ฉ

ํฌ์ผ“๋ชฌ ๋„๊ฐ์—์„œ ์ค‘๊ฐ„์— ์œ„์น˜ํ•œ ํฌ์ผ“๋ชฌ์„ ์‚ญ์ œํ•  ๋•Œ ์„ ํƒ ์ธ๋ฑ์Šค(selectedIdx)๊ฐ€ ๋ถ€์ ์ ˆํ•˜๊ฒŒ ๊ฐ์†Œํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ป ๋ฌธ์ œ ๋ฐœ์ƒ ์ฝ”๋“œ

const deletePokemon = (id) => {
  setSelectedPokemon(prev => {
    const filtered = prev.filter(pokemon => pokemon.id !== id);
    while (filtered.length < 6) {
      filtered.push("");
    }
    return filtered;
  });
  
  // ๋ฌด์กฐ๊ฑด selectedIdx ๊ฐ์†Œ
  setSelectedIdx(prev => Math.max(prev - 1, 0));
};

๐Ÿค” ์›์ธ ๋ถ„์„

  1. ์‚ญ์ œ ์œ„์น˜์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ selectedIdx๊ฐ€ ๊ฐ์†Œ
  2. ์‚ญ์ œ๋œ ํฌ์ผ“๋ชฌ์ด ํ˜„์žฌ ์„ ํƒ ์œ„์น˜๋ณด๋‹ค ๋’ค์— ์žˆ์„ ๋•Œ๋„ ์ธ๋ฑ์Šค๊ฐ€ ๊ฐ์†Œ
  3. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ž˜๋ชป๋œ ์œ„์น˜์— ์ƒˆ ํฌ์ผ“๋ชฌ์ด ์ถ”๊ฐ€๋˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ

์˜ˆ์‹œ ์ƒํ™ฉ:

// selectedIdx๊ฐ€ 2์ผ ๋•Œ
['A', 'B', '', 'D', '', '']

// 'D'(์ธ๋ฑ์Šค 3)๋ฅผ ์‚ญ์ œํ•˜๋ฉด
['A', 'B', '', '', '', '']
// selectedIdx๊ฐ€ 1์ด ๋˜์–ด๋ฒ„๋ฆผ (์ž˜๋ชป๋œ ๋™์ž‘)

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

const deletePokemon = (id) => {
  const deleteIdx = selectedPokemon.findIndex(pokemon => pokemon.id === id);
  
  setSelectedPokemon(prev => {
    const filtered = prev.filter(pokemon => pokemon.id !== id);
    while (filtered.length < 6) {
      filtered.push("");
    }
    return filtered;
  });

  // ์‚ญ์ œ ์œ„์น˜๊ฐ€ ํ˜„์žฌ ์„ ํƒ ์œ„์น˜๋ณด๋‹ค ์•ž์— ์žˆ์„ ๋•Œ๋งŒ ์ธ๋ฑ์Šค ๊ฐ์†Œ
  if (deleteIdx < selectedIdx) {
    setSelectedIdx(prev => prev - 1);
  }
};

๐ŸŽฏ ํ•ด๊ฒฐ ํฌ์ธํŠธ

  1. ์‚ญ์ œ๋˜๋Š” ํฌ์ผ“๋ชฌ์˜ ์ธ๋ฑ์Šค ํ™•์ธ
  2. ์กฐ๊ฑด๋ถ€๋กœ selectedIdx ๊ฐ์†Œ
  3. ์‚ญ์ œ ์œ„์น˜๊ฐ€ ํ˜„์žฌ ์„ ํƒ ์œ„์น˜๋ณด๋‹ค ์•ž์— ์žˆ์„ ๋•Œ๋งŒ ์ธ๋ฑ์Šค ์กฐ์ •

๐Ÿ“ ๋ฐฐ์šด ์ 

  • ๋ฐฐ์—ด ์กฐ์ž‘ ์‹œ ์ธ๋ฑ์Šค ๊ด€๋ฆฌ์˜ ์ค‘์š”์„ฑ
  • ์ƒํƒœ ์—…๋ฐ์ดํŠธ ์‹œ ์กฐ๊ฑด๋ถ€ ์ฒ˜๋ฆฌ์˜ ํ•„์š”์„ฑ
  • React์—์„œ ๋ฐฐ์—ด ์ƒํƒœ ๊ด€๋ฆฌ ๋ฐฉ๋ฒ•

๐Ÿ”„ ๊ฐœ์„ ๋œ ์ 

  1. ์ •ํ™•ํ•œ ์œ„์น˜์— ํฌ์ผ“๋ชฌ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ
  2. ๋” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๋™์ž‘
  3. ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ํ–ฅ์ƒ

๐Ÿ’ก ์ถ”๊ฐ€ TIP

// ์‚ญ์ œ ํ›„ ๋นˆ ๊ฐ’ ์ฑ„์šฐ๊ธฐ๋ฅผ ์ด๋ ‡๊ฒŒ๋„ ๊ฐ€๋Šฅ
const newArray = [...filtered, ...Array(6 - filtered.length).fill("")];

// ๋˜๋Š” splice๋ฅผ ํ™œ์šฉํ•œ ๋ฐฉ๋ฒ•
const newArray = [...prev];
newArray.splice(deleteIdx, 1);
newArray.push("");
profile
์ฃผ๋‹ˆ์–ด ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ์žฅ๊ธฐ ๊ธฐ๋ก๊ธฐ๋ก

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