我需要使用django进行反应 但我不能这样做
这是我的代码 在我的jsx
<h1>{{titulo}}</h1>
<h2>{{ejemplo}}</h2>
在我的模板中:
{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
<title>Index</title>
</head>
<body >
<div id="app"></div>
<script type="text/javascript" src="{% static 'bundle.js' %}"></script>
</body>
</html>
在我看来py:
def registro (request,giro):
reg = 'Registro Normal'
if giro==1:
reg='Registro Especial'
context = {
'ejemplo':'tests',
'titulo':reg
}
return render(request,'home/registro.html',context)
但是没有呈现并且出现了狂野错误:(
未捕获的ReferenceError:未定义titulo
答案 0 :(得分:5)
Django上下文仅在模板在服务器上呈现时。 React使用Javascript,这意味着它在浏览器上呈现 。如果你想在你的React应用程序中使用Django变量,你需要在Javascript中设置这些变量(确保在导入bundle.js
之前这样做。)
因此,您的模板可能如下所示:
{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
<title>Index</title>
</head>
<body >
<div id="app"></div>
<script type="text/javascript">
/* Put your context vars here. I recommend putting them under
a variable to avoid naming conflicts.
*/
var context = {
titulo: '{{titulo}}',
ejemplo: '{{ejemplo}}'
};
</script>
<script type="text/javascript" src="{% static 'bundle.js' %}"></script>
</body>
</html>
然后在React中,您可以引用context.variable
来获取所需的值。