2016-09-15 6 views
0

'handleWordClick'関数をコンポーネントに渡そうとしていますが、proptypeが指定されていないというエラーが発生し続けます。私は.bind必要なプロンプト `onClick`が指定されていませんでした//プロパティ 'bind'を読み取ることができません

'this.handleWordClick.bind(this)' 

で小道具を渡すしようとするも...私は「バインド」プロパティを読み取ることができないエラーが発生します。

このエラーは、私の知識の不足によるものかもしれませんが、いくつかの助けに感謝します。

ありがとうございました。ここで

は、コンテナのコー​​ドの一部です:ここで

handleWordClick: function() { 
    this.setState({ isModalOpen: true }); 
}, 

handleCloseModalClick: function() { 
    this.setState({ isModalOpen: false }); 
}, 

renderBookPage: function(which) { 
    var book = this.state.book; 

    return book[which].map(function (page, index) { 
    return <WordWrapper 
     key={index} 
     page={page} 
     onClick={this.handleWordClick} /> 
    }) 
}, 

は、私は「onClickの」小道具を渡すためにしようとしているコンポーネントです:

function WordWrapper (props) { 
    return (
    <span style={styles.cursorPointer} onClick={props.onClick}>{props.page.word}</span> 
) 
} 

WordWrapper.propTypes = { 
    page: PropTypes.shape({ 
    word: PropTypes.string.isRequired 
    }), 
    onClick: PropTypes.func.isRequired 
} 

module.exports = WordWrapper; 

答えて

2

この

をお試しください
var _this = this; 
return book[which].map(function (page, index) { 
return <WordWrapper 
    key={index} 
    page={page} 
    onClick={_this.handleWordClick} /> 
}) 

エラーの理由は、thisの中に.map()は、map()を指していません。React.createClass()

+0

一言。どのように私はそれを忘れることができます。他のコンポーネントでも同じことをやっています。ありがとう。私は 'var handleWordClick = this.handleWordClick;'を定義してから 'onClick = {handleClick} />' – jmurinello

関連する問題