Каким образом можно изменить дочерний state из родительских функций?
К примеру есть сокеты, во время принятия сообщения из сокета ( socket.on('test', function(data)..... ) нужно засунуть это сообщения в history компонента Dialog. Внутри dialog'а вешать не хорошо, т.к. если в data.dialog_id из сокета != Dialog.dialog_id мне не нужно обновлять историю переписке.
Видимо я ничего не понимаю в react, первый день копаюсь, вест стак перерыл.. Люди добрые помогите)
var Dialog = React.createClass({
getInitialState() {
return {
id: 0,
history: [],
};
},
_insertMessage(data){
if(!data) data = {user: 1, text: 'test'};
var history = this.state.history;
history.push(data)
this.setState({ history: history })
},
render() {
return (
<div>
<h3>Диалог: {this.state.id}</h3>
<div>
{
this.state.history.map((message, i) => {
return (
<Message
key={i}
user={message.user}
text={message.text}
/>
);
})
}
</div>
</div>
);
}
});
var App = React.createClass({
componentDidMount() {
socket.on('test', function(data){
}
},
render() {
return (
<div>
<Dialog />
</div>
);
}
});
ReactDOM.render(<App />, document.getElementById('app'));