typeError в контекстной части getServerSideProps в nextjs, typescript, redux-saga

avatar
creaseom
1 июля 2021 в 19:55
954
0
0

В настоящее время я работаю над проектом с использованием Redux-Saga, Next.js и TypeScript и испытываю трудности с использованием getServerSideProps. С импортированной оболочкой вокруг getServerSideProps я продолжаю получать следующую ошибку типа в «любой» 2-й строке:

Если я избавлюсь от ввода ': any', ошибка будет отображаться от асинхронного до => как:

Аргумент типа '(контекст: любой) => Promise<{ props: {}; } | undefined>» не может быть назначен параметру типа «GetServerSidePropsCallback<any, any>». Введите 'Promise<{ props: {}; } | undefined>» нельзя присвоить типу «GetServerSideProps<any, ParsedUrlQuery>». Введите 'Promise<{ props: {}; } | undefined>' не соответствует подписи '(контекст: GetServerSidePropsContext): Promise<GetServerSidePropsResult>'.

/pages/MyPage.tsx

export const getServerSideProps: GetServerSideProps<any> =
    wrapper.getServerSideProps(async (context): any=> {.      // error is shown here on any
        const cookies = nookies.get(context);
        if (cookies.userId && cookies.token) {
            context.store.dispatch(
                { type: userActionTypes.LOAD_MYPROFILE_REQUEST },
                cookies.userId,
            );
            context.store.dispatch(
                { type: userActionTypes.LOAD_CARDS_REQUEST },
                cookies.userId,
                cookies.token,
            );
            context.store.dispatch(END);
            await context.store.sagaTask.toPromise();
        } else {
            return {
                props: {},
            };
        }
    }); 

Это наш магазин:
/store/configureStore.ts

export interface SagaStore extends Store {
    sagaTask?: Task;
}

const configureStore: MakeStore<RootState> = () => {
    const sagaMiddleware = createSagaMiddleware();
    const middlewares = [sagaMiddleware];
    const enhancer =
        process.env.NODE_ENV === 'production'
            ? compose(applyMiddleware(...middlewares)) //배포용 미들웨어
            : composeWithDevTools(applyMiddleware(...middlewares)); // 개발용 미들웨어
    const store = createStore(rootReducer, enhancer);
    (store as SagaStore).sagaTask = sagaMiddleware.run(rootSaga);
    return store;
};

const wrapper = createWrapper<RootState>(configureStore, {
    debug: process.env.NODE_ENV === 'development', // true일 때 디버그가 더 자세히 뜹니다.
});

export default wrapper;
Источник
Seth
13 июля 2021 в 17:23
0

Какую версию next-redux-wrapper вы используете?

Ответы (0)