我对redux/react是个新手。我正在做一个简单的rest调用,通过触发一个动作来获取一些细节。但是我得到了以下错误
BSC.js?d219:24 Uncaught TypeError:
this.props.fb is not a function.
我的代码如下所示:
export function fb(){
return dispatch => {
dispatch({
type: SUCCESS,
payload: {"key1":"value1","key2":"value2"}
})
}
}
集装箱-
import {connect} from 'react-redux';
import React, { Component } from 'react';
import {fb} from '../../actions/b/bSA';
export class BSC extends React.Component {
componentDidMount(){
this.props.fb();
}
render(){
return <div></div>
}
}
export default connect(null, {fB})(BSC);
减速机
const initialState = {
loading: true,
error: null,
};
export default function bSR(state = initialState, action) {
switch(action.type) {
case SUCCESS:
return {
...state,
loading: false,
};
default:
// ALWAYS have a default case in a reducer
return state;
}
}
可能的问题是什么?
发布于 2018-07-11 20:41:39
只是吐了一口水,但我相信你缺少一个MapStateToProps函数来实际附加该函数。
发布于 2018-07-11 21:17:39
您需要在容器组件文件中声明此方法。
const mapDispatchToProps = dispatch => {
return bindActionCreators({
fb
}, dispatch);
};
其中,bindActionCreators
是:
import {bindActionCreators} from "redux";
现在将其传递给connect方法:
export default connect(null, mapDispatchToProps)(BSC);
这里发生的事情是,mapDispatchToProps
函数将dispatch
作为函数参数,并且必须将其传递给操作创建者以实际分派操作。在这里,bindActionCreators
使用dispatch
as参数调用您的操作创建器方法,您将能够在那里分派所需的操作。
https://stackoverflow.com/questions/51293601
复制相似问题