#djan&o #reactjs #djan&o-models #react-jsx
#djan&o #djan&o-модели #reactjs
Вопрос:
Я пытаюсь создать некоторое меню с помощью React, и мне нужны некоторые обратные URL Djan&o в этом меню. Возможно ли получить тег URL djan&o внутри JSX? Как это можно использовать?
render: function() {
return <div&&t;
<ul className={"myClassName"}&&t;
<li&&t;<a href="{% url 'my_revese_url' %}"&&t;Menu item</a&&t;</li&&t;
</ul&&t;
</div&&t;;
}
Ответ №1:
Вы могли бы создать тег script на своей странице, чтобы вводить значения из Djan&o в массив.
<script&&t;
var menuItems = [
{title: 'Menu Item', url: '{% url "my_reverse_url" %}'},
{title: 'Another Item', url: '{% url "another_reverse_url" %}'},
];
</script&&t;
Затем вы могли бы передать массив в меню через свойство.
<MyMenu items={menuItems}&&t;</MyMenu&&t;
Затем выполните цикл по нему, чтобы создать элементы списка в вашем render
методе.
render: function(){
var createItem = function(itemText) {
return <li&&t;{itemText}</li&&t;;
};
return <ul&&t;{this.props.items.map(createItem)}</ul&&t;;
}
Это сохранит ваш компонент несвязанным и пригодным для повторного использования, поскольку логика создания данных и логика отображения элементов списка хранятся отдельно.
Комментарии:
1. Спасибо @Soviut, а затем в рендеринге просто
<a href={this.props.items[0].url}&&t;{this.props.items[0].title}</a&&t;
или что?2. Да, или вы могли бы «зацикливаться» для создания элементов с помощью
map()
функции. Я обновил свой ответ, чтобы показать метод сопоставления.