2017-03-27 7 views
1

これは単純なカウンタのコードです。コンポーネントを複数回レンダリングするReact.js

しかし、私がビューをレンダリングすると、出力が得られません。コードに何が間違っているのか教えてください。

ボタンを押してカウンタをインクリメントし、画面に表示します。

var Title = React.createClass({ 

    getInitialState : function(){ 
    return {count:0}; 
    }, 
    increment : function(){ 

    this.setState({count:this.state.count+this.props.incVal}); 
    }, 
    render: function() { 
    return (
     <div> 
     <h1 >Count : {this.state.count}< /h1> 
     <button onClick={this.increment} >Increment</button> 
     </div> 
    ); 
    } 
}); 




var MultiButton = React.createClass({ 
    render : function(){ 
    return(
     <Title incVal={1}/> 
     <Title incVal={5}/> 
    ); 
    } 
}); 

ReactDOM.render(<MultiButton /> , 
    document.getElementById('example') 
); 
+0

のような単一のdivでそれらをラップし、反応させる場合には、 'F12'を押して開いたブラウザコンソールに素敵なエラーメッセージを(示していほとんどのブラウザ)。何か問題が起こったときに、ブラウザコンソールのエラーログを見るのがよいでしょう。 – Leone

答えて

0

に変更します。複数の要素を持っている以下のラファエル正解ほか

var MultiButton = React.createClass({ 
    render : function(){ 
    return(
     <div> 
      <Title incVal={1}/> 
      <Title incVal={5}/> 
     </div> 
    ); 
    } 
}); 
+0

私はそれについて完全に忘れました、ありがとう –

1

official documentationより。

<div> 
    Here is a list: 
    <ul> 
    <li>Item 1</li> 
    <li>Item 2</li> 
    </ul> 
</div> 

Aは、コンポーネントが要素を複数のリアクト返すことはできません反応するが、単一 JSX式は、複数の子を持つことができますので、あなたが複数のものをレンダリングするコンポーネント をしたい場合はあなたのようなdivの中でそれをラップすることができますこの。

あなたが反応クラスから複数の要素を返すことはできません

var MultiButton = React.createClass(
    { 
    render: function() { 
     return (
     <Title incVal={1}/> 
     <Title incVal={5}/> 
    ); 
    } 
    } 
); 

から

var MultiButton = React.createClass(
    { 
    render: function() { 
     return (
     <div> 
      <Title incVal={1}/> 
      <Title incVal={5}/> 
     </div> 
    ); 
    } 
    } 
); 
0
var Title = React.createClass({ 

    getInitialState : function(){ 
    return {count:0}; 
    }, 
    increment : function(){ 

    this.setState({count:this.state.count+this.props.incVal}); 
    }, 
    render: function() { 
    return (
     <div> 
     <h1 >Count : {this.state.count}< /h1> 
     <button onClick={this.increment.bind(this)} >Increment</button> 
     </div> 
    ); 
    } 
}); 




var MultiButton = React.createClass({ 
    render : function(){ 
    return(
     <Title incVal={1}/> 
    ); 
    } 
}); 

ReactDOM.render(<MultiButton /> , 
    document.getElementById('example') 
); 
関連する問題