children = navItems.find(item => item.id === 5).children;
children.splice(0, children.length, ...navItems.slice(5, navItems.length))
import { sortItemsInOrder } from '../help_functions';
export let navigationItems = sortItemsInOrder([
{
id: 3,
title: 'Пункт 3',
children: [
{
id: 3.1,
title: 'Пункт 1'
}
]
},
{
id: 2,
title: 'Пункт 2',
children: [
{
id: 2.1,
title: 'Пункт 1'
}
]
},
{
id: 1,
title: 'Пункт 1',
children: [
{
id: 1.1,
title: 'Пункт 1'
}
]
},
{
id: 4,
title: 'Пункт 1',
children: [
{
id: 4.1,
title: 'Пункт 1'
}
]
},
{
id: 5,
title: 'Пункт 1',
children: [
{
id: 5.1,
title: 'Пункт 1'
}
]
},
{
id: 6,
title: 'Пункт 1',
children: [
{
id: 6.1,
title: 'Пункт 1'
}
]
},
{
id: 7,
title: 'Пункт 1',
children: [
{
id: 7.1,
title: 'Пункт 1'
}
]
},
{
id: 8,
title: 'Пункт 1',
children: [
{
id: 8.1,
title: 'Пункт 1'
}
]
},
{
id: 9,
title: 'Пункт 1',
children: [
{
id: 9.1,
title: 'Пункт 1'
}
]
}
]);
const Menu = ({ items }) =>
items instanceof Array && items.length // Если items == Array и items.length то
? <ul> // Создаём список
{items.map(n => (
<li key={n.id}> // Создаём li с key n.id (не ясно зачем, первый раз такое вижу)
<a>{n.title}</a> // Создаём ссылку с текстом n.title
<Menu items={n.children} /> // Создаём какой-то непонятный компонент Menu с атрибутом items равному n.children
</li>
))}
</ul>
: null;
function createNavigation(items) {
return (
<nav>
<ul>
{
sortItemsInOrder(items).map(item => {
return (
<li>
<ul>
{
sortItemsInOrder(item.children).map(item => {
return (
<li><Link to='/'>{ item.title }</Link></li>
)
})
}
</ul>
<Link to='/'>{ item.title }</Link>
</li>
)
})
}
</ul>
</nav>
)
}
function createNavigation(items) {
return sortItemsInOrder(items).map(item => {
return (
<nav>
<ul>
<li>{ item.title }</li>
</ul>
</nav>
)
})
}
function createNavigation(items) {
let nav;
sortItemsInOrder(items).forEach((item, i, arr) => {
nav = (
<nav>
<ul>
<li>
<ul>
{ sortItemsInOrder(item.children).forEach((item, i, arr) => {
return (
<li> { item.title }</li>
)
}) }
</ul>
<Link to="/">{ item.title }</Link>
</li>
</ul>
</nav>
);
return nav
});
return nav
}