inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

React로 NodeBird SNS 만들기

질문 있습니다.

해결된 질문

202

kok

작성한 질문수 5

0

const {mainCardPics, myLocation} = useSelector(state => state.user);

const getLocation = () => {
if (navigator.geolocation) { // GPS를 지원하면
navigator.geolocation.getCurrentPosition((position) => {
dispatch({
type: MY_LOCATION_REQUEST,
data: {
lat: position.coords.latitude,
long: position.coords.longitude,
},
});
dispatch({
type: GET_POSTS_REQUEST,
data: {
dong: myLocation.dong,
},
});
}, function (error) {
console.error(error);
}, {
enableHighAccuracy: false,
maximumAge: 0,
timeout: Infinity
});
} else {
alert('GPS를 지원하지 않습니다');
}
};

현재 위치의 위도 경도를 받아서 카카오맵api 를 연결해 주었는데요(MY_LOCATION_REQUEST). 그 다음 바로 GET_POSTS_REQUEST 를 통해서 카카오맵을 통해서 받은 도,시,군,동 으로 포스트를 불러오는 액션입니다. 하지만 dispatch 액션을 위와 같이 연속적으로 써주면 카카오 맵 api 의 결과 값을 받기도 전에 다음 액션이 취해지더라구요. 그러면 카카오 맵 api 의 결과값을 받는거를 기다려야 되는데 async/await 을 쓸수가 없더라구요. 이거에 대한 솔류션이 있을까요? 

react javascript

답변 3

1

제로초(조현영)

아뇨 MY_LOCATION_SUCCESS 뒤에 GET_POSTS_REQUEST를 두셔야 연달이 이어서 실행됩니다.

0

kok

지금 강의 복습하면서 하는거라서 redux-saga 를 현재 쓰고있는 상태입니다. 

function myLocationAPI(latLong) {
return axios.get(`https://dapi.kakao.com/v2/local/geo/coord2address.json?x=${latLong.long}&y=${latLong.lat}`, {
headers: {
"Authorization": "test",
},
});
}

function* myLocation(action) {
try {
const result = yield call(myLocationAPI, action.data);
yield put({
type: MY_LOCATION_SUCCESS,
data: result.data.documents[0]
});
} catch (e) {
yield put({
type: MY_LOCATION_FAILURE,
error: e,
});
}
}

function* watchMyLocation() {
yield takeLatest(MY_LOCATION_REQUEST, myLocation);
}
const {mainCardPics, myLocation} = useSelector(state => state.user);
dispatch({
type: MY_LOCATION_REQUEST,
data: {
lat: position.coords.latitude,
long: position.coords.longitude,
},
});
console.log("dong : ",myLocation);
dispatch({
type: GET_POSTS_REQUEST,
data: {
dong: myLocation.dong,
},
});

dispatch 액션이 끝나면 myLocation 에 결과 값이 담겨야 되지 않나요? 근데 위와 같이 하면 빈 객체가 콘솔에 나와서요

0

제로초(조현영)

이 때 redux-thunk나 redux-saga를 쓰는 겁니다. 강좌 참고해주세요~

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

434

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