reactjs - Typescript npm-bibliotek kan ikke eksportere Redux-store, vennligst gi råd
Jeg bruker Notistack-biblioteket og har laget en fork av det, og bruker deretter VSCode for å prøve å legge til en Redux-butikk i biblioteket som jeg vil eksponere for apper.
Jeg er ikke så flink med Typescript. Jeg har litt problemer hehe.
Det jeg vil gjøre er at når appen bruker Notistack for å vise en snack-melding. Jeg vil bruke Redux for å oppdatere meldingen i sanntid, som en filopplasting/nedlastingsprogresjon som vises på snacken. Det er her Notistack nye Redux-store (som jeg lager her) kommer inn i bildet. Jeg vil at Notistack skal eksponere Redux-storen til appen slik at appen kan sende redux dispatch inn til Notistack Redux Store, og vise dispatched meldinger i Notistack SnackbarItem.tsx
(håper du forstår)
Når jeg kompilere i VSCode får jeg denne feilen i appen min:
Failed to compile.
./src/redux/root-reducer.js
Attempted import error: 'notistack' does not contain a default export (imported as 'NotisReducer').
Min rot-reducer i appen ser slik ut:
import { combineReducers } from 'redux';
import NotisReducer from 'notistack';
import snackReducer from './snackbar/snack.reducer';
const rootReducer = combineReducers({
snack: snackReducer,
NotisReducer,
});
export default rootReducer;
Som du ser importerer jeg Notistacks NotisReducer og jeg tror jeg har implementert det.
(Jeg har brukt NPM-lenke for å legge til lokalt forked Notistack-bibliotek i appen min)
Nå ser det ut som dette her er Notistacks index.js-fil hvor jeg eksponerer Redux-store som NotisReducer:
Det jeg gjorde i Notistack var at jeg la til en i index.d.ts:
Jeg definerer typen store slik:
import * as React from 'react';
import { SnackbarClassKey } from '@material-ui/core/Snackbar';
import { ClickAwayListenerProps } from '@material-ui/core/ClickAwayListener';
import { TransitionProps } from '@material-ui/core/transitions/transition';
import { StandardProps } from '@material-ui/core';
import store from './Redux/store'; // MY STORE
...
...
export type store = store; // EXPORT IT
Jeg er ikke sikker på om dette er korrekt, da jeg ikke kunne sette et breakpoint i npm-linkede Notistack. Kanskje det er for mange problemer nå som må fikses først.
I filen
SnackbarProvider.tsx
gjorde jeg det slik, ved å importere store-typen fra index.d.ts):
import {
SnackbarProviderProps,
SnackbarKey,
SnackbarMessage,
OptionsObject,
RequiredBy,
ProviderContext,
TransitionHandlerProps,
store, // STORE
} from ".";
import createChainedFunction from "./utils/createChainedFunction";
export { store }; // EXPOSING IT
I filen
NotisReducer.js
importerer jeg store for å bli sendt til indext.js ovenfor
Men som du så ovenfor får jeg kompilatorfeil, store er ikke eksportert.
Attempted import error: 'notistack' does not contain a default ex (imported as 'NotisReducer').
vær så snill og gi råd :))

