this.props.fb不是函数

时间:2018-07-11 20:18:09

标签: javascript reactjs redux react-redux

我是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;
    }
    }

可能是什么问题?

2 个答案:

答案 0 :(得分:0)

只是吐气,但我相信您缺少实际上会附加该功能的MapStateToProps函数。

答案 1 :(得分:0)

您需要在容器组件文件中声明此方法。

const mapDispatchToProps = dispatch => {
    return bindActionCreators({
        fb
    }, dispatch);
};

其中bindActionCreators是:

import {bindActionCreators} from "redux";

现在将其传递给连接方法:

export default connect(null, mapDispatchToProps)(BSC);

这里发生的是mapDispatchToProps函数将dispatch作为函数参数,必须将其传递给动作创建者才能实际分派动作。在这里bindActionCreatorsdispatch作为参数调用您的操作创建者方法,您将能够在其中分派所需的操作。