Не уверен, что проблема связана с настройкой моих сокетов - или если я неправильно пытаюсь отобразить данные с Реакцией.React и Socket.io: Возможность получения исходных данных - но просмотр не обновляется, когда новое сообщение приходит в
Я могу с легкостью извлекать данные с помощью своего сокета, но он не обновляется, когда новые данные отправляются на сервер. Мое намерение состоит в том, чтобы состояние в React автоматически выдавало новые данные, которые всегда живут из-за подключения сокета.
Вот мой клиент приложение, которое получает сообщения от сервера и делает их:
var Chat = React.createClass({
getInitialState: function() {
return {
messages: null
}
},
componentWillMount: function(){
var self = this;
socket.emit('getMessages');
socket.on('serverMessages', function (data) {
self.setState({messages: data})
});
},
render: function() {
var messages = this.state.messages ? <MessageList messages={this.state.messages}/> : null
return (
<div className="jumbotron">
{ messages }
<MessageForm submitMessage={this.submitMessage}/>
</div>
);
}
});
Только в случае вот мой сервер код, который выдает данные:
io.on('connection', function (socket) {
socket.on('getMessages', function (data) {
Message.find(function(err, messages){
socket.emit('serverMessages', messages);
})
});
});
Код был поспешно написан в браузере и не проверен, поэтому приносим извинения, если есть опечатки/логические ошибки. Ключевым недостатком в исходном примере был отсутствующий обработчик событий для 'getMessages' – kwcto
Спасибо @kwcto - я внедрил ваши отзывы, но он по-прежнему ведет себя одинаково. Новые сообщения появляются только при обновлении страницы. (Я обновил вопрос, чтобы отразить новую реализацию) – fresh5447