๐Ÿ’ป๐Ÿ’€/๊ฐœ๋ฐœ

[Redux-Saga] Error: call: argument of type {context, fn} has undefined or null fn

db2 2021. 9. 12. 10:42

ํ˜„์ƒ

redux-saga์˜ call() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋˜ ์ค‘ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ์ด๋‹ค.

Error: call: argument of type {context, fn} has undefined or null `fn`

์›์ธ

call() ๋ฉ”์„œ๋“œ์˜ ๋‘ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•ด์•ผํ•˜๋Š” ์ธ์ž(action.payload)์˜ ์œ„์น˜๋ฅผ ์ž˜๋ชป ์ž‘์„ฑํ–ˆ๋˜ ๊ฒƒ์ด ๋ฌธ์ œ์˜€๋‹ค.

function* addSaga(action) {
  try {
    const result = yield call(api.addParticle(action.payload));
  } 
}

ํ•ด๊ฒฐ

๊ณต์‹ ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•˜๋‹ˆ ๋ฐ”๋กœ ํ•ด๊ฒฐ๋๋‹ค. call() ๋ฉ”์„œ๋“œ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ํ•จ์ˆ˜์™€ ๊ทธ ํ•จ์ˆ˜์— ๋„ฃ์„ ์ธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋ฐ›๋Š”๋‹ค.

call(fn, ...args)

  • fn: ์ œ๋„ค๋ ˆ์ดํ„ฐ ํ•จ์ˆ˜. ํ˜น์€ ํ”„๋กœ๋ฏธ์Šค๋‚˜ ๋‹ค๋ฅธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
  • args: fn ํ•จ์ˆ˜์— ์ „๋‹ฌํ•  ์ธ์ž ๊ฐ’๋“ค

๋”ฐ๋ผ์„œ ์•„๋ž˜์ฒ˜๋Ÿผ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์ฃผ๋ฉด ๊ฐ„๋‹จํžˆ ํ•ด๊ฒฐ๋œ๋‹ค.

function* addSaga(action) {
  try {
    const result = yield call(api.addParticle, action.payload);
  } 
}