向函数发送参数 returns 无法读取未定义的 属性 'props'

sending a parameter to a function returns Cannot read property 'props' of undefined

我是 React 和 redux 的新手。我试图通过反应路由器发送一个参数,并在一个负责管理减速器和动作以保持和更新状态的组件中接收它。这是我的 class,我的问题发生在那里:

import React from "react";
import {connect} from "react-redux";

import  {getStoriesAction2} from '../../actions/StoryBoardAction2';
import {StoryBoard} from '../composers/story-board/StoryBoard';
class StoryBoardStateManager2 extends React.Component {
render() {
    return (
        <div>
            <StoryBoard storyId={this.props.params.id} stories={this.props.stories2} getStories={()=> this.props.getStories2()}/>
        </div>


    );
}
}

 const mapStateToProps = (state) => {
 return {
    stories2: state.storyBoardReducer2
};
};

 const mapDispatchToProps = (dispatch) => {
  return {
    getStories2:() => {
        dispatch(getStoriesAction2());

    }
  };
 };

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

在上面的 storyId={this.props.params.id} 中正在获取通过路由器发送的参数,它工作得很好但我需要将这个 id 作为参数发送到这个函数:getStoriesAction2 所以我需要更改函数到以下内容:

getStoriesAction2(this.props.params.id)

一旦我添加了上述参数,我就会得到以下错误:

Uncaught TypeError: Cannot read property 'props' of undefined

这基本上是说不能读取未定义的参数。那么如何将 this.props.params.id 传递给上述函数呢?谁能帮我找出问题所在?

只需这样更改您的 mapDispatchToProps:

 const mapDispatchToProps = (dispatch) => {
  return {
    getStories2:(id) => {
        dispatch(getStoriesAction2(id));

    }
  };
 };

然后您可以更改 getStories2 绑定:

 getStories={()=> this.props.getStories2(this.props.params.id)}