inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

React로 NodeBird SNS 만들기

5-17. 게시글 불러오기

result값은 데이터가 있는데 result.data를 하면 언디파인드 뜨는 이유가 뭔가요?

1050

inflearn1

작성한 질문수 10

0

사가에서 백엔드에서 받아온 데이터를 보면 저렇게 나오는데 result.data를 하면 언디파인드 되는 이유가 뭔가요?

react javascript

답변 12

1

제로초(조현영)

아 찾았습니다. function* loadMainPostAPI에서 * 빼세요.

1

제로초(조현영)

sagas/index.js에서 call 대신 fork 쓰시고요. 모든 saga가 yield 후에 다 pending 상태인가요? 아니면 저 saga만 그런가요?

0

inflearn1

고맙습니다. 드디어 해결했습니다.  정말 고생많으셨습니다. 다시한번 감사드립니다.

0

inflearn1

아뇨 포스트를 가져오는 사가만 그런거 같습니다.. 로그인후 사가는 정상적인거 같습니다.

0

inflearn1

앗... 왜 저게 call이지... 죄송합니다...

0

inflearn1

깃 주소입니다.. 혼자 해보려니 잘 안되네요 ㅠㅠㅠ 진짜 이유를 모르겠습니다

0

제로초(조현영)

saga 설정이 이상한 것으로 보입니다. yield가 promise를 resolve하질 않네요.

0

inflearn1

posts 200, user401(로그인이 필요합니다.)번입니다

0

제로초(조현영)

yield가 promise를 resolve될때까지 기다려주지 않네요. 지금 /posts랑 /user가 빨갛게 뜨는데 status code가 어떻게 나오나요?

0

inflearn1

혹시몰라 네트워크 정보도 남깁니다.

0

inflearn1

const express = require('express')
const router = express.Router()
const db = require('../models')

router.get('/'async (req, res, next) => { // GET /api/posts
    try {
        const posts = await db.Post.findAll({
            include: [{
                model: db.User,
                attributes: ['id''nickname'],
            }],
            order: [['createdAt''DESC']], // DESC는 내림차순, ASC는 오름차순
        });
        res.json(posts);
    } catch (e) {
        console.error(e);
        next(e);
    }
});
module.exports = router
//백엔드 /api/posts
//프런트 post 사가 입니다.
function* watchLoadMainPost() {
    yield takeLatest(loadMainPostRequestAction, loadMainPost)
}
function* loadMainPost() {
    try {
        console.log('포스트시작')
        const result = yield call(loadMainPostAPI)
        // const result = yield call(loadMainPostAPI).then((resolve) => {
        //     console.log(resolve)
        //     return resolve.data
        // })
        console.log(result)
        yield put(loadMainPostSuccessAction(result.data))
    } catch (e) {
        yield put(loadMainPostFailureAction(e))
    }
}
function* loadMainPostAPI() {
    //보낼 정보가 없으면 withCredentials: true 안넣어도됨
    return axios.get('/posts/')
}

0

제로초(조현영)

코드를 보여주세요. 지금 예상되는 이유는 결괏값을 받아오기 전에 console.log를 찍으신 것 같습니다. 위에 Promise {<pending>}이라고 적혀있는데, promise가 완료되기 전에 찍으신 겁니다. await이나 then을 안 붙이신 것 같기도 하고요.

console.log의 대상은 객체라서 참조로 동작합니다.

next 10 이상에서는 redux dev tool 구동이 안되나요?

0

272

1

세션 갱신 문의 건

0

482

7

배포 진행 후 Highlight updates components render 표시

0

445

1

똑같은 기능을 하는 테이블

0

447

4

관계형

0

312

2

프론트 서버를 이용하지 않는경우

1

299

3

인피니트 스크롤링 사용시 오류

0

278

0

계속 이런에러가 떠서 해결하기는 했는데 어떤 의미인지 모르겠습니다.

0

433

2

req.user가 언제 생성되나요??

0

330

2

Cannot read property 'id' of null 에러

0

333

1

리트윗한 게시글 불러오는 sequelize

0

252

1

result.data에서 images인 이유

0

281

2

takeLatest에 대한 질문입니다.

1

342

2

프론트에서 express를 사용하지 않을때 동적라우팅

0

501

6

getInitialProps가 클라이언트에서 수행되는 이유?

0

258

1

리로드하면 팔로우 언팔로우 값이 초기화 되는 문제입니다.

0

445

2

스타일드 컴포넌트와 className을 통한 스타일 적용의 차이에 대해 궁금합니다

0

585

2

할인 쿠폰 사용이 안되는되요 (848-f9af83f183e3)

0

365

1

nodejs mvc 패턴

0

975

4

사용하고 보니, 람다 구성이 궁금합니다!

0

266

1

제로초님

0

445

1

새로고침 로그인 풀림 문제.

0

247

1

안녕하세요. 강의 너무 감사합니다

0

157

1

제로초님

0

170

1