不承认我的行为是一种功能。
您好,我正在设置一个React-Redux应用程序,我想将我项目的所有set.states集中在一个唯一的商店中。首先,我试图调用一个actios,该actios可以为我提供外部API的数据(以数组形式),它在反应中效果很好,在一个Friends项目中也很好。 编译器不断告诉我动作调用方法不是函数。 谢谢
这是有问题的功能:
/*imports*/
import { connect } from 'react-redux';
import { getPokeList } from '../../actions/pokeList';
componentDidMount = () => {
const pokeUrl = `https://pokeapi.co/api/v2/pokemon/`;
getPokeInfo(pokeUrl)
.then(data => this.props.getPokeList(data.results)) <---
}
/* connection */
const mapStateToProps = state => ({
pokeList: state.pokeList.elements,
});
export default connect(mapStateToProps, { getPokeList })(List);
这里是我的操作方法:
const GET_LIST = 'GET_LIST';
export default {
GET_LIST,
}
export const getPokeList = list => ({ type: GET_LIST, list });
这是我的减速器
import pokeList from '../../actions/pokeList'
const initialState = {
list: [],
};
const reducer = (state = initialState, action) => {
if (action.type !== null) {
switch (action.type) {
case pokeList.GET_LIST:
return { ...state, list: action.list };
default:
return state;
}
}
return state;
};
export default reducer;
目前,我没有在代码的任何部分中使用结果数据。 谢谢,请原谅我的英语!
答案 0 :(得分:0)
在App.jsx中,您需要将链接导入更改为:
import List from '../../components/List/List';
在此之后,将达到您的简化器,等等。在拉下您的代码后,我已经做到了这一点。我不确定在此之后您想要达到什么目的,所以我就把它留在那儿。
最终,您遇到的问题是因为您的Link组件中具有“导出默认值”。