2017-01-04 18 views
1

私は反応して還元するのが新しいです。私は反応ルータを介してパラメータを送信しようとしていると減速器と状態を保持し、更新するための管理を担当するコンポーネントでそれを受信して​​います。ここに私の問題が起こる私のクラスには、次のとおりです。関数にパラメータを送信すると戻り値が返されません。 'props'は未定義です

上記storyId = {this.props.params.id}が完全に正常に動作し、ルータを経由して送信されるパラメータを取得しているが、私は、このIDを送信する必要がで
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); 

この関数のパラメータ:getStoriesAction2ので、私は次のように関数を変更する必要があります。できるだけ早く私はfollwoingエラーを取得する上記のparamsを追加すると

getStoriesAction2(this.props.params.id) 

Uncaught TypeError: Cannot read property 'props' of undefined 

基本的には未定義のパラメータを読み取ることはできません。どうすればこの関数にthis.props.params.idを渡すことができますか?私の問題がどこにあるのか誰でも知ることができますか?

答えて

2

ちょうどあなたのmapDispatchToPropsこのように変更します。

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

    } 
    }; 
}; 

、あなたが結合getStories2を変更することができますより:たくさん働い

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

感謝を:) –

関連する問題