gpt4 book ai didi

django - 如何将 Django 模板变量插入到 React 脚本中?

转载 作者:行者123 更新时间:2023-12-03 13:23:38 25 4
gpt4 key购买 nike

我正在使用 Django Rest Framework 和 React.js。我的页面使用如下 API 显示一个用户的个人资料:

http://localhost:8000/api/profile/[pk]

我想动态设置react ajax请求的url以包含正确的pk,以便它从服务器请求正确的用户信息。

我可以使用像 window.location.href 这样的函数并从末尾弹出数字,但是有没有办法通过直接从服务器传递 pk 来做到这一点,即使用模板变量?

最佳答案

渲染组件时,应该将 pk 作为 prop 传递。

<script>
React.render(React.createElement(Profile, {
userId: "{{ userId }}",
urlPrefix: "/api/profile/"
}), element);
</script>

更好的选择可能是只获取用户,然后渲染组件。例如,使用 super 代理:

superagent.get('/api/profile/{{ userId }}', function(res){
React.render(React.createElement(Profile,
{user: res.body}
), element);
});
<小时/>

使用 browserify,您可以将数据包含在脚本标记中,然后在代码中使用它:

<script>var _appData = {userId: "{{ userId }}"};</script>

或者使用 -r 标志导出模块(API 中的 .require())。

# sh
browserify -r react -r src/profile.js:profile.js

// js
b.require('react').require('src/profile.js', {expose: 'profile.js'});

然后在正则脚本标签中使用模块

<script>
var React = require('react');
var Profile = require('profile.js');

React.render(React.createElement(Profile, {
userId: "{{ userId }}",
urlPrefix: "/api/profile/"
}), element);
</script>

关于django - 如何将 Django 模板变量插入到 React 脚本中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26478394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com