2016-12-01 3 views
0

をレンダリングしない反応これは私のコードです。何らかの形で、プロパティがのレンダリング機能に到達していないように見えます。コンソールに出力しようとすると、undefinedと表示されます。コンポーネント

これはなぜ起こっているのでしょうか?

"parentDiv"には何も描画されないという問題があります。ただ空白のままです。しかし、要素を調べると、その下に2つの "スパン"の子が表示されます(HTML以外で作成されたものではありません)。しかし、これらのスパン要素には内容がありません。

答えて

1

私はあなたのコードに根本的な問題があると思います。あなたは、コンポーネントの関数の1つを呼び出すような外部関数 'render'を通して、あなたの反応コンポーネントに 'a'と 'b'を渡そうとしています。これは間違っています。

「a」と「b」をあなたのReactコンポーネントRParentにpropsとして渡す必要があります。 'a'と 'b'の値が変わるたびに、親コンポーネントが自動的に再レン​​ダリングされます。

var Item = React.createClass({ 
render: function() { 
    return (
      React.createElement('div', {}, 
        React.createElement('span', {}, this.props.a), 
        React.createElement('span', {}, this.props.b) 
        ) 
      ); 
} 
}); 

var RParent = React.createClass({ 
getInitialState: function() { 
    return {messages: []}; 
}, 
, 
render: function() { 
    var messages = this.props.messages; 
    return (
      React.createElement('div', {}, 
        React.createElement(Item, messages)) 
      ); 
} 
}); 

ReactDOM.render(
    (<RParent messages= {'a': a, 'b': b} />) 
    , document.getElementById('parentDiv')); 
+0

''あなたは鍵に割り当てようとしているものは何ですか? –

+0

@ free-soul他の答えを削除しました。 aとbは質問と同じ値です。レンダリング機能をご覧ください。 –

+0

@AmoolyaSKumarありがとう、ちょっとした質問ですが、私はまだコードを試していませんが(しばらくはできません)、どこで要素を 'messages'配列にプッシュする必要がありますか?レンダーイベントでは?または 'componentWillMount'イベントですか?私の実装ではコントロールの配列が必要なので配列も必要ですね – user3271166

関連する問題