我的应用程序无法将this.props操作识别为函数(反应-Redux)

时间:2019-01-26 16:15:29

标签: javascript reactjs redux react-redux

不承认我的行为是一种功能。

您好,我正在设置一个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;

目前,我没有在代码的任何部分中使用结果数据。 谢谢,请原谅我的英语!

1 个答案:

答案 0 :(得分:0)

在App.jsx中,您需要将链接导入更改为:

import List from '../../components/List/List';

在此之后,将达到您的简化器,等等。在拉下您的代码后,我已经做到了这一点。我不确定在此之后您想要达到什么目的,所以我就把它留在那儿。

最终,您遇到的问题是因为您的Link组件中具有“导出默认值”。