Ibr*_*him 7 serverside-javascript flask reactjs webpack isomorphic-javascript
我正在使用带有ReactJS前端的Flask Backend开发一个应用程序.ReactJS应用程序已经开发并与webpack捆绑在一起.
与捆绑在一起的客户端渲染一切正常webpack.
我现在正在尝试使用python-react添加服务器端渲染.
但问题是,我必须通过具有根组件节点的Jinja2 template基本模板与我的ReactJS应用程序共享一些变量.index.htmlreactjs<div id='react-node'></div>
我不得不把我routes和config通过我的应用程序jinja2模板如下图所示,
//index.html
<!doctype html>
<html>
...
...
<script type='text/javascript'>
var STATIC_IMAGE_ROOT = "{{ url_for('static', filename='img/') }}";
var ROUTES = { ... };
...
</script>
</html>
Run Code Online (Sandbox Code Playgroud)
所有上述js变量都被设置为全局window对象.
但是当我尝试在python中渲染组件时,它会抛出window对象的异常ReactRenderingError: react: ReferenceError: window is not defined.
解决这个问题的最佳方法是什么?
在服务器上呈现时没有全局窗口.您可以创建一个假窗口,首先检查窗口是否存在:
if (typeof(window) == 'undefined'){
global.window = new Object();
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用jsdom或类似的库来创建假DOM.
| 归档时间: |
|
| 查看次数: |
8952 次 |
| 最近记录: |