React-Redux操作未正确调度?

时间:2020-08-16 15:27:35

标签: reactjs redux react-redux

我有以下操作:

import axios from 'axios';
export function getAPIData(id)
{
    return (dispatch) =>
    {
        axios.get('http://localhost:5000/api/' + id)
        .then(res =>
        {
            dispatch(
            {
                type: 'DONE',
                payload: res.data
            });
        });
    }
}

然后在我的组件中分派操作:

  componentDidMount()
  {
    this.props.dispatch(getAPIData());
  }

然后:

function mapStateToProps(state)
{
  console.log(state);
  return { 
    data: state.result
  };
}
export default connect(mapStateToProps)(Rows);

在控制台中,当我尝试查找有效载荷时,它说的是波纹管。

function()

参数:TypeError:“ arguments”,“ callee”和“ caller”不能为 在这种情况下访问。

呼叫者:TypeError:“ arguments”,“ callee”和“ caller”不能为 在这种情况下访问。

长度:1

名称:“”

哪里有问题?非常感谢。

1 个答案:

答案 0 :(得分:2)

要调度动作,您需要提供mapDispatchToProps

首先导入您的操作

import { getAPIData } from "../store/actions/getAPIData";

然后构建mapDispatchToProps

const mapDispatchToProps = (dispatch) => {
 return {
   getAPIData: (props = null) => {
     dispatch(getAPIData(props));
  },
 };
};

将此与mapStateToProps一起添加

export default connect(mapStateToProps , mapDispatchToProps)(Rows);

现在您可以像这样调用动作

 componentDidMount()
 {
   this.props.getAPIData();
 }