React Inline Style:ReferenceError:未定义窗口

时间:2016-02-25 10:06:38

标签: reactjs react-router isomorphic-javascript

我在React Component中导入SCSS样式表时出现此错误:

  

server.js:614 return / msie   [6-9] \ B /。测试(window.navigator.userAgent.toLowerCase());                                        ^

     

ReferenceError:未定义窗口

这是我的Home.jsx

为什么???

2 个答案:

答案 0 :(得分:0)

因为您在服务器上呈现视图 在服务器(node.js)中,我们没有window对象

将您的代码更改为在客户端使用componentDidMount事件和标记

进行渲染
export default class AsyncMap extends Component {

  state = {
    inBrowser: false
  }

  componentDidMount() {
    this.setState({inBrowser: true});
  }

  yourCurrentRender() {...}

  render() {
    let res = null;
    if (this.state.inBrowser) {
      res = this.renderNewBehavior();
    } else {
      res = <span>Loading</span>;
    }
    return res;
  }
}

答案 1 :(得分:-1)

  

窗口对象仅在客户端提供

1. * 第一步是确保您没有进行服务器端渲染,窗口对象仅在浏览器上可用。

2. * 其次,如果您使用webpack并在 webpack-dev-server 模式下运行您的应用程序,则您的窗口对象不是可检测到而不是

localhost: 8080/webpack-dev-server/

localhost: 8080/