我有以下操作:
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
名称:“”
哪里有问题?非常感谢。
答案 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();
}