React JSX 和 Django 反向 URL

IT技术 django reactjs django-models react-jsx
2021-05-13 00:26:02

我正在尝试使用 React 构建一些菜单,并且在此菜单中需要一些 Django 反向 URL。是否可以在 JSX 中获取 django url 标签?这个怎么用?

render: function() {
    return <div>
        <ul className={"myClassName"}>

            <li><a href="{% url 'my_revese_url' %}">Menu item</a></li>

        </ul>
    </div>;
} 
1个回答

您可以在页面中创建一个脚本标记,以将来自 Django 的值注入到一个数组中。

<script>
  var menuItems = [
    {title: 'Menu Item', url: '{% url "my_reverse_url" %}'},
    {title: 'Another Item', url: '{% url "another_reverse_url" %}'},
  ];
</script>

然后,您可以通过属性将数组传递到菜单中。

<MyMenu items={menuItems}></MyMenu>

然后循环它以在您的render方法中创建列表项

render: function(){ 
  var createItem = function(itemText) {
    return <li>{itemText}</li>;
  };
  return <ul>{this.props.items.map(createItem)}</ul>;
}

这将使您的组件保持解耦和可重用,因为创建数据的逻辑和显示列表项的逻辑是分开的。