Это выражение не вызывается. Тип «Thunk<Collections, undefined, any, {}, any>» не имеет сигнатур вызовов

Вот мой код. Я хочу вызвать действие, и вышеприведенная ошибка продолжает появляться.

const action = useStoreActions( (actions : StoreModel) => actions.collections.fetchCollections);

useEffect( () => {
    action()
},[])

Это мой объект коллекций, и я хочу получить доступ к fetchCollections. Это любой простой код управления состоянием реакции. P.S: Здесь я удалил fetchCollectionsRequest, fetchCollectionsSuccess, fetchCollectionsFailure.

import { Action, action, thunk, Thunk } from 'easy-peasy';

export interface Collections {
    isLoading : boolean;
    collections : any[];
    error : string;
    fetchCollections : Thunk<Collections>;
}

export const collectionsModel : Collections = {
    isLoading : false,
    collections : [],
    error : '',
   
    fetchCollections : thunk( actions => {
        actions.fetchCollectionsRequest();
        axios.get('/categories?filter = {"where":{"isHidden":false}}')
            .then( res => actions.fetchCollectionsSuccess(res.data))
            .catch( err => actions.fetchCollectionsFailure(err.message));
    }),
}

А это моя модель.tsx

import { collectionsModel, Collections } from './collectionsModel';

export interface StoreModel {
    collections : Collections;;
}

export const model = {
    collections : collectionsModel,
}
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
612
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это потому, что вы вводите параметр actions хука useStoreActions (который напрямую не соответствует правильным типам).

Вместо этого используйте типизированные хуки:

// outside the component
import { createTypedHooks } from 'easy-peasy';

const { useStoreActions } = createTypedHooks<StoreModel>();

// inside the component:
const { fetchCollections } = useStoreActions(actions => actions.collections);

Другие вопросы по теме