Реагируйте на обратный URL JSX и Django
Я пытаюсь создать какое-то меню, используя React, и мне нужно несколько обратных ссылок Django в этом меню. Возможно ли получить тег django url внутри JSX? Как это можно использовать?
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>;
}
Это будет держать ваш компонент отделенным и многократно используемым, потому что логика для создания данных и логика для отображения элементов списка хранятся отдельно.