2016-12-27 15 views
0

私はreact.jsを初めて使用しています。数字をmath.randomに入力してthis.props.firstCardプロパティに設定しようとしていますが、未定義を返します。いくつかの変数を試しましたが、結果は未定義または構文エラーです。コード:this.props.firstCard returns undefined

handleClick() { 
let firstCard = this.state.isFirstCardChosen; 
function chooseCard() { 
    return Math.floor(Math.random() * (80 - 1) + 1); 
} 
if (firstCard == false) { 
    this.props.firstCard = chooseCard; 
    console.log(this.props.firstCard); 
} 
} 

この1と間違って何ですか?前もって感謝します。

+0

SRYを 'this.props.firstCard == chooseCardがあります;'の代わりに「this.props.firstCard = chooseCard;」これは '拡張可能ではない'エラーを返します。 – zaebalo

+0

this.propsは変更できません。それを変更することはできません。 setStateと小道具 –

答えて

0

私は推測をハザードに行くとあればその

を示唆している:問題はちょうどあなたが小道具(props are immutable)を変異させるしようとしているという事実に起因するものではありません

と:あなたはあなたの​​方法が正常にバインドされていないことをES2015クラスの構文、その後

かもしれ問題を使用している

コンポーネント状態にthis.propsへの呼び出しはundefinedを返します。この問題を解決するには

次のようにコンストラクタで​​をバインドすることができます。

constructor (props){ 
    super(props); 
    this.handleClick = this.handleClick.bind(this); 
} 
+0

でいくつかの反応チュートリアルを見て、私はどのような構文を使うべきですか? es2016? – zaebalo

+0

伝えにくいですが、_handleClick_を使用するコードを投稿できますか? – Pineda

0

を誰もが小道具は不変であると述べていたよう。また、あなたが正しく小道具を設定し、すなわち、あなたのコンストラクタであなたのhandleClick機能を結合していることを確認してください。

constructor(props) { 
    super(props); 
    his.handleClick = this.handleClick.bind(this); 
}