#typescript #redux #redux-thunk
Вопрос:
Я не знаю, почему это дает мне ошибку, как
«Ошибка ссылки: не удается получить доступ к лексическому объявлению ‘getVotes’ до инициализации»
вот мое досье на Тункса:
import { createAsyncThunk } from "@reduxjs/toolkit"; import instance from "../../server"; import IVote from "../../models/vote"; import { add_user } from "./voteSlice"; export const getVotes = createAsyncThunk( "vote/getvote", async() =gt; { const res = await instance.getlt;IVotegt;("vote/getvote"); if (res.status === 200) return res.data; } ) export const addUser = createAsyncThunk( "vote/adduser", async(_, thunkApi) =gt; { const res = await instance.get("vote/adduser"); if(res.status === 204) thunkApi.dispatch(add_user()); }
)
это работает просто отлично, если я экспортирую один кусок как :
import { createAsyncThunk } from "@reduxjs/toolkit"; import instance from "../../server"; import IVote from "../../models/vote"; import { add_user } from "./voteSlice"; export const getVotes = createAsyncThunk( "vote/getvote", async() =gt; { const res = await instance.getlt;IVotegt;("vote/getvote"); if (res.status === 200) return res.data; } )
Затем в моем срезе у меня есть это
import { createSlice, PayloadAction } from "@reduxjs/toolkit"; import IVote from "../../models/vote"; import * as Thunk from "./voteThunks"; const initialState: IVote = { //..// }; const voteSlice = createSlice({ name: "Vote", initialState, reducers: { add_user: (state) =gt; { state.users.push(); } }, extraReducers: { [Thunk.getVotes.fulfilled.type]: (_, action: PayloadActionlt;IVotegt;) =gt; { return action.payload } } }) export const { add_user } = voteSlice.actions; export default voteSlice.reducer;
, but if I export 2 it gives error. How do I export it correctly ? Or should it be only one Thunk per file ?