2017-08-11 5 views
2

私のコードブロックがある(反応):なぜこのメソッドで小道具を呼び出せないのですか?次のように

class Buerger extends React.Component { 
    constructor() { 
    super(); 
    this.gehaltHandler = this.gehaltChange.bind(this) 
    } 
    render() { 

    return(
     <div style={{textAlign:"right", marginTop:'-103', marginRight:'900px'}}> 
     <Anzeige stand = {"Bargeld: " + this.props.stand}/> 
     <Arbeit gehalt = {this.props.gehalt} gehaltChange = {this.gehaltChange} arbeitenFunc = {this.props.arbeitenFunc}/> 
     </div> 
    ) 
    } 

    gehaltChange(inputWert) { 
    const test = this.props.gehalt 
    alert(test) 
    } 

は、だから私は、親クラスから小道具「gehalt」を渡しているとあなたは私が「アルバイトと呼ばれる子クラスの子に再びそれを渡す見ることができます"

Funktion gehaltChangeは(「クリック」)、アラートで確認として働いているが、このコードでi「は、未定義のプロパティを読み取ることができません 『小道具』を」取得します。

gehaltの "Arbeit"への渡しは、私がボタン名としてテストしたのでうまくいき、正しい値を示しています。

私はそれを手に入れません。私が間違っていることを誰かが見ている?それは私が前に渡された小道具を通過できないと同時にそれを使用することですか?私はどんな助けでも感謝しています。

答えて

0

あなたはとてもあなたが新しい名前にそれをバインドし、元の結合していない関数を渡す名前に

gehaltChange={this.gehaltChange} 

this.gehaltHandler = this.gehaltChange.bind(this) 

を変更したため。

gehaltChange={this.gehaltHandler}またはthis.gehaltChange = this.gehaltChange.bind(this)

+0

あなたはfunktionが働いていて、本当にありがとう、私は実際には、名前の変更を解決するための絆のfunktionを渡しませんでした。 => gehaltChange = {this.gehaltHandler} イリノイできるだけ早く答えを受け入れます。 – OhLongJohnson

2

あなたはコンストラクタpropsに合格し、また彼らとsuperを呼び出す必要があるため。

class Buerger extends React.Component { 
    constructor(props) { 
    super(props); 
    this.gehaltHandler = this.gehaltChange.bind(this) 
    } 
+0

props引数を逃した

constructor(props) { super(props); this.gehaltHandler = this.gehaltChange.bind(this); } 

はそれが上の任意の効果を持っているとは思いません質問。 –

0

私はあなたが正しい方法で結合されていないと思います。この1のために

this.gehaltHandler = this.gehaltChange.bind(this); 

this.gehaltChange = this.gehaltChange.bind(this); 

を誰かが上記の答えとして小道具を渡し、この行を置き換え 。

0

ただ、この変更:これに

constructor() { 
    super(); 
    this.gehaltHandler = this.gehaltChange.bind(this) 
    } 

:あなたは両方constructorsuper方法:)

関連する問題