2017-11-05 4 views
0

私は反応でティックタックのつま先ゲームを作成しようとしています。今、私は初めで、今はロジックを追加しようとしていません。私はboxコンポーネントにonclick関数を持たせようとしているので、console.logを使ってグリッドコンポーネントをクリックしたことを読むことができます。しかし、私のonclick関数でエラーを取得しています。また、私はそれを動作させるためにイベントを処理する必要があると思いますか?ここ は私のコードです:onClickは機能していません

export default App; 

class ApplicationComponent extends React.Component { 

    clicked(event){ 

     console.log(event.target) 
    } 

    render() { 
     return (
      <div>Application Component</div> 
     ); 
    } 
    resetBoard(){ 
     console.log("what up world"); 
    } 
    checkingWon(){ 
     console.log("what up world 2") 
    } 
} 
class GridComponent extends React.Component { 
onGreet(){ 
    console.log("grid") 
} 
    render() { 
     return (
      <div className="grid"> 
       <BoxComponent/> 
       <BoxComponent/> 
       <BoxComponent/> 
       <BoxComponent/> 
       <BoxComponent/> 
       <BoxComponent/> 
       <BoxComponent/> 
       <BoxComponent/> 
       <BoxComponent/> 
      </div> 
     ); 
    } 
} 

class BoxComponent extends React.Component { 

    render() { 
     return (
      <div className="box" onClick={(BoxComponent)=> 
       this.click.bind(this.onGreet)}> 

      </div> 
     ) 
    } 
} 
+0

実用的な最小限の例が役立ちます。 codesandboxを使用して問題を提示してください。 –

答えて

0

BoxComponentonGreetメソッドを持っていません。あなたはBoxComponentGridComponentonGreetメソッドを呼び出したい場合は、その子に小道具としてその関数を渡す必要があります:

class BoxComponent extends React.Component { 
    render() { 
    const {onClick} = this.props; 
    return (
     <div className="box" onClick={onClick}> 
     </div> 
    ); 
    } 
} 

class GridComponent extends React.Component { 
    onGreet(){ 
    console.log("grid") 
    } 
    render() { 
    return (
     <div className="grid"> 
     <BoxComponent onClick={this.onGreet}/> 
     <BoxComponent onClick={this.onGreet}/> 
     <BoxComponent onClick={this.onGreet}/> 
     <BoxComponent onClick={this.onGreet}/> 
     <BoxComponent onClick={this.onGreet}/> 
     <BoxComponent onClick={this.onGreet}/> 
     <BoxComponent onClick={this.onGreet}/> 
     <BoxComponent onClick={this.onGreet}/> 
     <BoxComponent onClick={this.onGreet}/> 
     </div> 
    ); 
} 

}

その後、子を形成する小道具を呼び出します

+0

2つのコンポーネントを結合する必要はありませんか? –

+0

いいえ - 上記のコードを試しましたか? –

+0

はい、私はBoxComponentをクリックするとコンソールに何も表示されません –

関連する問題