React Redux没有在表中显示数据

问题描述

我是react-redux的新手。我正在尝试通过api链接将俱乐部列表加载到表中,但未成功。有人可以帮我在桌子上显示俱乐部清单吗?

在actions / clubAction.js中

在api / ClubApi中,我使用axios.get(apiUrl +'clubs')定义了getClubs

import * as types from "./actionTypes";
import * as clubApi from "../../api/clubApi";

export function loadClubSuccess(clubs) {
  return { type: types.LOAD_CLUBS_SUCCESS,clubs };
}

export function loadClubs() {
  return function (dispatch) {
    return clubApi
      .getClubs()
      .then(({clubs}) => {
        dispatch(loadClubSuccess(clubs));
      })
      .catch((error) => {
        throw error;
      });
  };
}

在reducers / clubReducer.js中

在reducer中,我添加了initialState.clubs,我在initialState文件中将其定义为clubs:[]

import * as types from "../actions/actionTypes";
import initialState from "./initialState";

export default function clubReducer(state = initialState.clubs,action) {
  switch (action.types) {
    case types.LOAD_CLUBS_SUCCESS:
      return action.clubs;
    default:
      return state;
  }
}

在ClubsPage.js中

import React,{Component} from "react";
import { connect } from "react-redux";
import * as clubActions from "../../../store/actions/clubActions";
import ClubList from "./ClubList";
import PropTypes from "prop-types";
import { bindActionCreators } from "redux";

class ClubsPage extends Component {

  componentDidMount() {
    const { clubs,actions } = this.props;

    if (clubs.length === 0) {
      actions.loadClubs().catch(error => {
        alert("Loading club Failed" + error);
      });
    }
  }

  render() {
    return (
      <>
      <h2>Klubovi</h2>
        <ClubList
            clubs={this.props.clubs}
        />
      </>
    );
  }
}

ClubsPage.propTypes = {
  clubs: PropTypes.array.isrequired,actions: PropTypes.object.isrequired,};

function mapStatetoProps(state) {
  return {
    clubs: state.clubs 
  };
}

function mapdispatchToProps(dispatch) {
  return {
    actions: {
      loadClubs: bindActionCreators(clubActions.loadClubs,dispatch)
    }
  }
}

export default connect(
  mapStatetoProps,mapdispatchToProps
)(ClubsPage);

在ClubList.js

import React from "react";
import PropTypes from "prop-types";
import BootstrapTable from 'react-bootstrap-table-next';

const columns = [
    {
        datafield: 'id',text: 'Id'
    },{
        datafield: 'name',text: 'Naziv kluba'
    },{
        datafield: 'email',text: 'E-Mail'
    }
]

const ClubList = ({ clubs }) => (
    <BootstrapTable 
        keyField='id' 
        data={ clubs } 
        columns={ columns } 
    />
);

ClubList.propTypes = {
  clubs: PropTypes.array.isrequired
};

export default ClubList;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...