Thunk 디스패치 대기 결과를 입력하려면 어떻게 해야 하는가?
나는 비동기적으로 끈을 돌려주는 컹크의 결과를 기다리고 싶다.내 문제는 마지막 줄에 있어 어떻게 타이프를 치는지 모르겠어cityName
로서string
.
// 오류, 'ThunkAction, AppState, undefined, any>' 형식은 'string' 형식에 할당할 수 없음.
코드는 의도대로 작동하는데, 유감스럽게도 내가 타이핑을 해야 한다.cityName
로서any
const getCity = (): Thunk<Promise<string>> => async (
dispatch,
getState
): Promise<string> => {
// ...
const city = await fetchCityApi(query);
dispatch(setUserCity(city));
return city;
};
export const getDataUsingCity = (): Thunk<void> => async dispatch => {
const cityName: string = await dispatch(getCity());
};
Thunk가 값을 반환하지 않는 한 잘 작동하는 Thunk용 포장지를 사용하고 있다.
export type Thunk<R> = ThunkAction<R, AppState, undefined, any>;
이것은 안에 버그로 보인다.redux-thunk
이 범법 행위 내에서 고정된 것.수정된 사용ThunkDispatch
커밋 내의 유형은 위의 코드가 오류 없이 작동하도록 한다.그러나 의 새로운 버전은redux-thunk
2018년 5월 이후 발행되지 않은 것으로, 이는 이 수정안이 공개적으로 이용될 수 없다는 것을 의미한다.
관련 이슈를 살펴본다면, 당신은 또한 당신의 정의의 변화를 통해 이것을 고칠 수 있다.Thunk<R>
로
export type Thunk<R> = ThunkAction<R, AppState, undefined, Action>;
이것은 정확한 과부하를 강요한다.ThunkDispatch
(가져가는 것ThunkAction
사용할 것.그렇지 않으면 그 때문에any
TypeScript는 둘 중 어떤 것을 사용할지 모호하게 할 수 없으며, 따라서 첫 번째 것(평야를 차지하는 것)만 선택한다.Action
위의 PR이 TS를 선택하도록 하기 위해 두 개의 과부하를 재정렬하기 때문에 문제를 해결하는 것도 이 때문이다.ThunkAction
디폴트로 변형하다
참조URL: https://stackoverflow.com/questions/55205461/how-do-i-type-the-result-of-awaiting-a-thunk-dispatch
'programing' 카테고리의 다른 글
vue-cli 구성 요소에서 lib를 빌드하고 가져오기 (0) | 2022.03.13 |
---|---|
성분 nnxt의 process.env 변수에 액세스할 수 없음 (0) | 2022.03.13 |
프레임워크 셀 렌더러를 사용한 Ag 그리드가 스토어 변경 시 계속 재렌더링됨 (0) | 2022.03.13 |
인쇄 함수 출력(비퍼 파이선 출력)을 플러시하려면 어떻게 해야 하는가? (0) | 2022.03.12 |
Json을 Vue 구성 요소 및 루프에 전달 (0) | 2022.03.12 |