Skip to content

๐Ÿž Reactโ€Toastify ์ค‘๋ณต ๋ Œ๋”๋ง ๋ฐฉ์ง€ํ•˜๊ธฐ

JeongwooHam edited this page Feb 22, 2024 · 1 revision

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

  • ์ด์ „์—๋Š” ๋™์ผํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ toast ๋ฉ”์‹œ์ง€๊ฐ€ ์—ฐ์†ํ•ด์„œ ํ™”๋ฉด์— ๋ณด์—ฌ์กŒ๊ณ , ๋ณด์—ฌ์ง€๋Š” ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ 1๊ฐœ๋กœ ์ œํ•œํ•  ๊ฒฝ์šฐ ์‹œ๊ฐ„์ฐจ๋กœ ๋™์ผํ•œ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ณด์ด๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ธ€์ž์ˆ˜ ์ตœ์†Œ๊ฐ’์„ ๋งŒ์กฑํ•˜์ง€ ๋ชปํ•œ ์ƒํƒœ๋กœ ์ œ์ถœ ๋ฒ„ํŠผ์„ ์—ฐ์†ํ•ด์„œ ํด๋ฆญํ•  ๊ฒฝ์šฐ ๋™์ผํ•œ ์˜ค๋ฅ˜์— ๋Œ€ํ•œ toast ๋ฉ”์‹œ์ง€๊ฐ€ 5์ดˆ ๊ฐ„๊ฒฉ์œผ๋กœ ๊ณ„์† ๋ Œ๋”๋ง ๋˜์—ˆ๋‹ค.

๐Ÿ‘ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

  • React-Toastify ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ž์ฒด์ ์œผ๋กœ ์ค‘๋ณต ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ๊ธฐ๋Šฅ์ธ custom ID๋ฅผ ์ง€์›ํ•ด์ฃผ๊ณ  ์žˆ๋‹ค.
  • ๊ธฐ์กด์— toastify์˜ ๋‘ ๋ฒˆ์งธ ์ธ์ž๋กœ ๋ณด๋‚ด๋˜ ๊ฐ์ฒด์— toastId ํ‚ค ๊ฐ’์„ ๊ฐ€์ง€๋Š” ์†์„ฑ์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋œ๋‹ค
toast(message, {
  toastId: "customId"
})

๐Ÿค” ๋งŒ์•ฝ ํ•ด๋‹น toast ์ฐฝ์ด ์ด๋ฏธ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด?

  • ๋งŒ์•ฝ ์œ„์—์„œ์ฒ˜๋Ÿผ custom toast ID๋ฅผ ์ „๋‹ค๋ž„ ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด toast.isActive() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ํ•ด๋‹น toast ๊ฐ์ฒด๊ฐ€ ์ด๋ฏธ ํ™”๋ฉด์— ๋ณด์—ฌ์ง€๊ณ  ์žˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
const toastId = React.useRef(null);

const notify = () => {
    if(! toast.isActive(toastId.current)) {
      toastId.current = toast("I cannot be duplicated!");
    }
  }