всяких редаксов запилил всё через useContext, но вот беда, ИДЕ не распознает что импортнутая из контекста возвращает, вообще никаких тайп ассистов и и проч нет. например:
const { getWallets } = useContext(SuperStorageContext);
есть подозрение что тут сделано через жопу и надо както переделывать. вот только как?
контекст: return ( <SuperStorageContext.Provider value={{ getNfts, getWallets, addNewWallet, deleteWalletType, wipeStorage, saveNftsToDisk, saveWalletsToDisk, }} > {children} </SuperStorageContext.Provider> );
как обьявлен SuperStorageContext?
чуть выше скинул
не именно сам контекст, там где createContext
import React, { createContext, useEffect } from 'react'; import { addNewWallet, deleteWalletType, getNfts, getWallets, saveNftsToDisk, saveWalletsToDisk, wipeStorage } from './realm'; export const SuperStorageContext = createContext(); export const SuperStorageProvider = ({ children }) => { useEffect(() => { getWallets() }, []); return ( <SuperStorageContext.Provider value={{ getNfts, getWallets, addNewWallet, deleteWalletType, wipeStorage, saveNftsToDisk, saveWalletsToDisk, }} > {children} </SuperStorageContext.Provider> ); };
конкретно этот файл - да
а ну так вот тут то и собака зарыта)
понял, спасибо. есть гдето в опенсорсе пример как сделать нормально?
сделать тип для контекста, типа type SuperStorage = { getNfts: (id: string)=>Nft; ... } Потом создать контекст export const SuperStorageContext = createContext<SuperStorage>(null); а дальше все также
отлично, спасибо!
Обсуждают сегодня