【发布时间】:2021-10-27 07:31:13
【问题描述】:
我很难设置这个函数的类型:
interface fetchedCountries {
mergedArray?: [];
}
export const fetchCountries = () => {
return (dispatch:(() => void)) => {
console.log(dispatch)
fetch(countryListJsonFile)
.then((response) => response.json())
.then((jsonData: fetchedCountries) => {
const array = Object.entries(jsonData)[0];
const countries = array[1].map((el: any) => {
return el._id;
}).sort();
dispatch(setCountries(countries));
})
.catch(function (err) {
console.error(err);
});
};
};
上面写着setCountries expected 0 arguments, but got 1。
我尝试遵循不同的指南,例如 this,但我无法成功。
我迷路了。我想在这里摆脱所有any类型,并提供真实的。
商店已导出:
export type RootState = ReturnType<typeof store.getState>;
export type AppState = ReturnType<typeof rootReducer>;
export type AppDispatch = typeof store.dispatch;
这是切片:
import { createSlice } from '@reduxjs/toolkit';
const initialState = {
countryList: [],
};
const slice = createSlice({
name: 'countryList',
initialState,
reducers: {
setCountries(state, action) {
state.countryList = action.payload;
},
},
});
export const { setCountries } = slice.actions;
export default slice.reducer;
有人可以帮忙吗?
【问题讨论】:
-
你是如何定义 setCountries 的?
-
setCountries 在代码中没有说明。
-
正如上面 cmets 所述,我怀疑您没有正确定义
setCountries()动作创建者,我相信它必须是const setCountries = (country: string) => ({type: YOUR_CORRESPONDING_ACTION_TYPE_HERE, country})之类的东西 -
我刚刚添加了切片。请检查我原来的问题
标签: reactjs typescript redux redux-toolkit