2017-08-25 5 views
-1

Header.jsthis.props.createNewBookは関数ではありません。新しい小道具を追加するには?

class header extends React.component { 
{ 
    render(
<CreateBook bookType= { createBookType } closeModal= { this.closeModal } /> 
) 
} 
} 

CreateBook.jsが

class CreateBook extends React.Compoent { 
     showResult() { 
     const errors = this.validate(); 
     if (errors.length === 0) { 
      this.props.createNewBook(JSON.stringify(this.state.model)); 
     } else { 
      this.setState({ 
      errorList: errors, 
      }); 
     } 
     } 


    render() { 
    console.log(this.props) 
    return (
. 
. 
. 
<Button id= "save" onClick= {() => this.showResult() 
    }> Save </Button > 
} 
CreateBook.propTypes = { 
    createNewBook: PropTypes.func, 
    bookType: PropTypes.string.isRequired, 
    closeModal: PropTypes.func, 
}; 

は今、私は上記のコードで

const mapDispatchToProps = (dispatch) => ({ 
     createNewBook: (data) => dispatch(createBookAction(data)), 
    }); 

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

を持つコンテナを作成し、私はcreateNewBookプロップ値を取得することはできません。だから、私はdipatch機能を呼び出すことができません。

私がログを取得しようとしているとき、私はbookTypeとcloseModalだけを取得します。

この問題を解決するのを手伝ってください。

+2

FYI、同様のJavaScriptは大文字と小文字が区別され、それが正しいことがない場合のみを必要とするが、変数や関数の名前 – adeneo

+0

上記のコードサンプルの1つです。私は元のコードで適切に大文字小文字を使いましたそれでも私は同じ問題を抱えています。 – vvv

+0

'createBookAction'をインポートしましたか? – nbkhope

答えて

0

showResultで "this"を使用した場合、コンストラクタでバインドする必要があります。

this.showResult = this.showResult.bind(本)

関連する問題