首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >this.props.fb不是一个函数

this.props.fb不是一个函数
EN

Stack Overflow用户
提问于 2018-07-12 04:18:09
回答 2查看 57关注 0票数 0

我对redux/react是个新手。我正在做一个简单的rest调用,通过触发一个动作来获取一些细节。但是我得到了以下错误

代码语言:javascript
运行
复制
BSC.js?d219:24 Uncaught TypeError: 
this.props.fb is not a function.

我的代码如下所示:

代码语言:javascript
运行
复制
export function fb(){
    return dispatch => {
        dispatch({
          type: SUCCESS,
          payload: {"key1":"value1","key2":"value2"} 
         })
       }
}

集装箱-

代码语言:javascript
运行
复制
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);

减速机

代码语言:javascript
运行
复制
  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;
    }
    }

可能的问题是什么?

EN

回答 2

Stack Overflow用户

发布于 2018-07-12 04:41:39

只是吐了一口水,但我相信你缺少一个MapStateToProps函数来实际附加该函数。

票数 0
EN

Stack Overflow用户

发布于 2018-07-12 05:17:39

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

代码语言:javascript
运行
复制
const mapDispatchToProps = dispatch => {
    return bindActionCreators({
        fb
    }, dispatch);
};

其中,bindActionCreators是:

代码语言:javascript
运行
复制
import {bindActionCreators} from "redux";

现在将其传递给connect方法:

代码语言:javascript
运行
复制
export default connect(null, mapDispatchToProps)(BSC);

这里发生的事情是,mapDispatchToProps函数将dispatch作为函数参数,并且必须将其传递给操作创建者以实际分派操作。在这里,bindActionCreators使用dispatch as参数调用您的操作创建器方法,您将能够在那里分派所需的操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51293601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档