向函数发送参数 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)}
我是 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)}