data
の最初の要素でいくつかの属性が存在する場合はそうである場合、チェック別個の状態変数に追加する必要があるreactjsに複数の状態変数を設定することは可能ですか?
var ConversationContainer = React.createClass({
LoadConversationInformation: function() {
jQuery.ajax({
url: this.props.getMessageUrl,
dataType: 'json',
cache: false,
success: function (data) {
this.setState({data: data});
}.bind(this),
error: function (xhr, status, err) {
console.error(this.props.url, status, err.toString());
}.bind(this)
});
},
...
render: function() {
var Chat = this.state.data.map(function (message) {
return (
<MessageContainer message={message} key={message.id}/>
);
});
return (
<div>
{Chat}
<MessageForm onMessageSubmit={this.handleMessageSubmit}/>
</div>
);
}
});
を以下のようにsuccessully LoadConversationInformation
機能とデータをグラブチャット容器を、反応これは簡単与えられます、このような:
...
success: function (data) {
if ('hasContactRequest' in data[0]) {
this.setState({
data: data,
hasContactRequest: data[0].hasContactRequest
});
}
else {
this.setState({data: data});
}
}.bind(this),
error: function (xhr, status, err) {
console.error(this.props.url, status, err.toString());
}.bind(this)
...
そのためConversationContainer
子検査で可能にし、それはこのように、存在する場合、いくつかの要素をレンダリングする:
var MessageContainer = React.createClass({
render: function() {
return (
<li className={(this.props.message.type === 'sender') ? 'sender' : 'receiver'}>
<MessageImage />
<MessageDate date={this.props.message.date}/>
<MessageText text={this.props.message.text}/>
{(this.state.hasContactRequest ? <MessageSendContacts/> : null)}
</li>
);
}
});
一般チャット機能していますが、私はこの追加の状態変数を追加することのない運を取得していないカント、およびthis.state.hasContactRequest
などのアクセス、それが得た: Uncaught TypeError: Cannot read property 'hasContactRequest' of null
を適切にそれを行うには?