react.js 进度条
Progress Bar with react.js
我正在尝试实现一个进度条,但 React 似乎不喜欢这个想法。我得到
Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op.
作为一个错误,尽管该元素是在调用该函数时安装的。这是代码:
SocketAction.js
var x = new MainApplication;
window.socket.on('label-downloads:Shipping\Events\ShippingProgress',function(event){
x.showProgress(event);
});
MainApplication.js
showProgress(e){
console.log(window.performance.now());
this.setState({
progressBar:{
height:'4px',
background: 'green',
position:'absolute',
left:250,
top: 70,
width: e + '%'
}
})
},
进度条在 MainApplication.js:
<div style={this.state.progressBar}></div>
元素的设置初始状态是这个
progressBar:{
height:'4px',
background: 'green',
width:1,
position:'absolute',
left:250,
top: 70
}
我不明白为什么不应该安装它...
编辑:
这是我传递给 browserfy 的文件:
import MainApplication from './project/MainApplication';
import MainSocketActions from './project/MainSocketActions';
React.render(<MainApplication />, document.getElementById('content'));
完成主要内容SocketAction.js:
import MainApplication from './MainApplication';
var x = new MainApplication;
window.socket = io('http://localhost:3000');
window.socket.on('connect', function () {
});
window.socket.on('label-downloads:Shipping\Events\ShippingProgress',function(event){
x.showProgress(event);
});
这个:
var x = new MainApplication;
正在创建一个新的 MainApplication
,但 React 从未渲染过它。然后你正在创建另一个(不同的)稍后呈现的。我想你想要这样的东西:
var x = React.render(<MainApplication />, document.getElementById('content'));
window.socket.on('label-downloads:Shipping\Events\ShippingProgress',function(event){
x.showProgress(event);
});
我正在尝试实现一个进度条,但 React 似乎不喜欢这个想法。我得到
Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op.
作为一个错误,尽管该元素是在调用该函数时安装的。这是代码:
SocketAction.js
var x = new MainApplication;
window.socket.on('label-downloads:Shipping\Events\ShippingProgress',function(event){
x.showProgress(event);
});
MainApplication.js
showProgress(e){
console.log(window.performance.now());
this.setState({
progressBar:{
height:'4px',
background: 'green',
position:'absolute',
left:250,
top: 70,
width: e + '%'
}
})
},
进度条在 MainApplication.js:
<div style={this.state.progressBar}></div>
元素的设置初始状态是这个
progressBar:{
height:'4px',
background: 'green',
width:1,
position:'absolute',
left:250,
top: 70
}
我不明白为什么不应该安装它...
编辑:
这是我传递给 browserfy 的文件:
import MainApplication from './project/MainApplication';
import MainSocketActions from './project/MainSocketActions';
React.render(<MainApplication />, document.getElementById('content'));
完成主要内容SocketAction.js:
import MainApplication from './MainApplication';
var x = new MainApplication;
window.socket = io('http://localhost:3000');
window.socket.on('connect', function () {
});
window.socket.on('label-downloads:Shipping\Events\ShippingProgress',function(event){
x.showProgress(event);
});
这个:
var x = new MainApplication;
正在创建一个新的 MainApplication
,但 React 从未渲染过它。然后你正在创建另一个(不同的)稍后呈现的。我想你想要这样的东西:
var x = React.render(<MainApplication />, document.getElementById('content'));
window.socket.on('label-downloads:Shipping\Events\ShippingProgress',function(event){
x.showProgress(event);
});