javascript - 获取窗口未在 ReactJs 上定义

标签 javascript reactjs fbjs

我在 React 上收到错误:"ReferenceError: window is not defined"

下面是我的代码:

import React from 'react';
import styles from './Header.css';
import withStyles from '../../decorators/withStyles';
import Link from '../../utils/Link';
import SignInMenu from './SignInMenu';
import UserMenu from './UserMenu';
import Navigation from '../Navigation';
import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';

@withStyles(styles)
class Header extends React.Component {

  constructor() {
    super();
    return {
      windowWidth: 0,
      windowHeight: 0
    };
  }

  componentDidMount() {
    this.setState({
      windowWidth: window.innerWidth,
      windowHeight: window.innerHeight
    });
  }

  render() {
     let windowWidth = this.state.windowWidth;
     let windowHeight = this.state.windowHeight;

     if (windowWidth < 1000) {
       let header = (<div>mobile</div>);
     }  else {
       let header = (<div>desktop</div>);
    }
  }

我正在尝试为桌面和移动设备呈现不同的 View ,并且刚刚开始使用 React。我不确定我是否做对了,在网上遵循一些指南并被困在这里。关于我做错了什么的任何想法?谢谢

最佳答案

您的问题可能出在您的构造函数中。

    constructor() {
      super();
      this.state = {
        windowWidth: 0,
        windowHeight: 0
      };
    }

关于javascript - 获取窗口未在 ReactJs 上定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32535858/

相关文章:

javascript - 从表格单元格的输入字段中获取事件 .focusout

javascript - 我的网站使用多个弹出窗口,其中一些包含视频。第一个视频将替换所有其他视频。我正在使用 html、css 和 javascript

javascript - FBJS JavaScript getElementById 返回空值?

javascript - FBJS 文本区域倒计时

javascript - 在更改该页面上的类时定向到另一个页面

javascript - 将鼠标悬停在表格行上

rest - 预检未通过控制检查访问控制允许来源不存在

ReactJS:如何将react-select包装在redux-form字段中?

reactjs - React中的 `render()`方法什么时候被调用

javascript - 将 JavaScript 转换为 FBJS - 选项卡仍然无法正常工作