【发布时间】:2016-11-17 15:47:05
【问题描述】:
我正在尝试为我的客户创建一个监督页面,但我正在努力实时更新 ReactJS 应用程序。此监督页面最多可以包含 16 个视频通量,它们可以或不能同时使用。
当我使用 Django 生成页面时,我会构建一个存储在 JS 变量中的初始列表:
var anims = {{list|safe}}
我的单个视频通量的 ReactJS 代码如下:
var ModelFlux = React.createClass({
displayName : "Flux player",
propTypes: {
animID: React.PropTypes.number.isRequired,
},
componentDidMount:function() {
//generating the player
},
render: function() {
var newDivId = 'iv' + this.props.animID;
return(
React.createElement('div',{className:'col-md-3 col-sm-6 col-xs-12'},
React.createElement('div', {id:"content"},
React.createElement('div',{id:newDivId,className:'smallPl'})
)
)
)
}
})
然后,我使用以下代码生成 X 通量:
var ModelFluxwithID = anims
.map(function(anim) {return React.createElement('div',{},React.createElement(ModelFlux,{key:anim.key,animID:anim.animID}))})
最后,我调用了我的应用程序:
var App = React.createClass({
displayName : "React App",
render: function() {
return(
React.createElement('div',{className:'container'},
React.createElement('div',{className:'row'},ModelFluxwithID)
)
)
}
})
ReactDOM.render(
React.createElement(App),
document.getElementById('react-app')
)
生成页面时它工作得很好。但是我的客户不想在每次通量在线/离线时加载页面,所以我使用 websocket 实时监控每个通量的状态,更新 anims :
ws = new WebSocket('xxxxxx');
ws.onmessage = function(event) {
// Update the anims variable
}
当动画发生变化(创建/销毁)时,我如何继续更新应用程序?
【问题讨论】:
标签: javascript reactjs websocket