#javascript #node.js #reactjs #dom-events #swiper
Вопрос:
У меня есть элемент карты в элементе SwiperSlide. Мне нужно понять, какую карту пользователь теперь видит и как извлечь информацию с этой карты.
MyStats.js
import React, { useState } from 'react';
import items from './allData';
import Menu from './Menu';
import Button from './Button';
const allCategories = ['All', ...new Set(items.map(item => item.category))];
console.log(allCategories);
function Mystats() {
const [menuItem, setMenuItem] = useState(items);
const [buttons, setButtons] = useState(allCategories);
var filter = (button) =>{
if(button === 'All'){
setMenuItem(items);
return;
}
const filteredData = items.filter(item => item.category === button);
setMenuItem(filteredData)
}
return (
<>
<Button button={buttons} filter={filter} />
<Menu menuItem={menuItem}/>
</>
);
}
export default Mystats;
MyStat.js это страница, на которой размещаются мои карточки, и они перенаправляют пользователя на следующую страницу. Этот Javascript берет все элементы из другого файла js и создает новую карточку в меню.
Menu.js
import React from 'react'
import {Link} from 'react-router-dom';
import Card from '@material-ui/core/Card';
import CardHeader from '@material-ui/core/CardHeader';
import CardMedia from '@material-ui/core/CardMedia';
import CardContent from '@material-ui/core/CardContent';
import { makeStyles } from '@material-ui/core/styles';
import { Swiper, SwiperSlide } from 'swiper/react';
import 'swiper/swiper-bundle.css';
const useStyles = makeStyles((theme) => ({
root: {
maxWidth: 300,
}
}));
function Menu({menuItem}) {
const classes = useStyles();
return (
<Swiper style={{display: 'flex', flexDirection: 'row'}}>
<div className="item">
{
menuItem.map((item) =>{
return (
<SwiperSlide style={{display: 'flex',alignItems: 'center', flexDirection: 'row'}}>
<Link to={{pathname:"tour"}}>
<Card className={classes.root} >
<CardHeader
title={item.name}
/>
<CardMedia
image="/static/images/cards/paella.jpg"
title="Paella dish"
/>
<CardContent>
{item.number}
</CardContent>
</Card>
</Link>
</SwiperSlide>
)
})
}
</div>
</Swiper>
)
}
export default Menu;
Menu.js create cards for user and put them into swiper.