Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 反应不';更新状态变化?_Reactjs - Fatal编程技术网

Reactjs 反应不';更新状态变化?

Reactjs 反应不';更新状态变化?,reactjs,Reactjs,我正在尝试使用react做一件非常简单的事情,即显示当前浏览器的宽度。它在加载页面时工作正常,但由于某些原因,它在调整大小时不会更新,即使我似乎在更新状态。。。帮忙 从“React”导入React; 类SmartBr扩展了React.Component{ 构造函数(){ 超级(); 此.state={ 窗宽: 窗口宽度|| document.documentElement.clientWidth|| document.body.clientWidth, 窗高: 窗内高度|| document.

我正在尝试使用react做一件非常简单的事情,即显示当前浏览器的宽度。它在加载页面时工作正常,但由于某些原因,它在调整大小时不会更新,即使我似乎在更新状态。。。帮忙

从“React”导入React;
类SmartBr扩展了React.Component{
构造函数(){
超级();
此.state={
窗宽:
窗口宽度||
document.documentElement.clientWidth||
document.body.clientWidth,
窗高:
窗内高度||
document.documentElement.clientHeight||
document.body.clientHeight
};
}
更新维度(){
this.setState={
窗宽:
窗口宽度||
document.documentElement.clientWidth||
document.body.clientWidth,
窗高:
窗内高度||
document.documentElement.clientHeight||
document.body.clientHeight
};
}
/**
*添加事件侦听器
*/
componentDidMount(){
这个.updateDimensions();
window.addEventListener(“resize”,this.updateDimensions.bind(this));
}
/**
*删除事件侦听器
*/
组件将卸载(){
removeEventListener(“resize”,this.updateDimensions.bind(this));
}
render(){
返回{this.state.WindowWidth}

; } } 导出默认的SmartBr是您调用的函数,而不是为其设置的对象,因此您需要更改
updateDimensions
函数以调用该方法,而不是像现在这样分配对象:)


冰说了什么。setState是一个函数而不是一个对象。
updateDimensions() {
  this.setState({
    WindowWidth:
      window.innerWidth ||
      document.documentElement.clientWidth ||
      document.body.clientWidth,
    WindowHeight:
      window.innerHeight ||
      document.documentElement.clientHeight ||
      document.body.clientHeight
  });
}