我正在開發一個帶有ReactJS front的Flask後端的應用程序。 ReactJS應用程序已經開發並與webpack捆綁在一起。使用ReactJS和Flask管理同構應用程序中的'window'對象Python
一切工作正常與客戶端呈現,這是與webpack
捆綁在一起。
我現在試圖用python-react添加服務器端渲染。
但問題是,我要通過Jinja2 template
其中有reactjs
根組件節點<div id='react-node'></div>
基本模板index.html
分享一些變量來我ReactJS應用程序。
我不得不通過jinja2
模板,我routes
和config
發送到我的應用程序如下圖所示,
//index.html
<!doctype html>
<html>
...
...
<script type='text/javascript'>
var STATIC_IMAGE_ROOT = "{{ url_for('static', filename='img/') }}";
var ROUTES = { ... };
...
</script>
</html>
上述所有的JS變量被設置爲全球window
對象。
但是當我試圖在python中渲染組件時,它會拋出異常對於window
對象ReactRenderingError: react: ReferenceError: window is not defined
。
解決此問題的最佳方法是什麼?
嗨!你使用'React.renderToString'(或'React.renderToStaticMarkup')服務器端? – Jean