tasksData.infoTask.map((task) => (
<Menu
id="menu-per-team"
anchorEl={engineerOfTeam}
keepMounted
open={Boolean(engineerOfTeam)}
onClose={closeMenuPerTeam}
>
{mainInformation.userTeam[0].map((value) => (
<MenuItem onClick={() => closeMenuPerTeam({
ID: task.ID, // Сюда попадает значение последнего элемента массива task, а не той итерации в которой открывается данное меню.
ROUTE_USER: value,
})}>
{value}
</MenuItem>))}
</Menu>
// Сделайте отдельный метод onClick
onClick = (task, value) => () => {
closeMenuPerTeam({
ID: task.ID,
ROUTE_USER: value,
})
}
{mainInformation.userTeam[0].map((value) => (
<MenuItem onClick={ this.onClick(task, value) }>
{value}
</MenuItem>))}
</Menu>
class MyComponent extend React.Component {
...
onClick = (task, value) => () => {
closeMenuPerTeam({
ID: task.ID,
ROUTE_USER: value,
})
}
...
render() {
...
}
}
function ComponentName ({mainInformation, tasksData}) {
const closeMenuPerTeam = () => {
setActionRequest(data);
}
return (
<React.Fragment>
<div>
...
</div>
</React.Fragment>
);
function ComponentName ({mainInformation, tasksData}) {
const closeMenuPerTeam = () => {
setActionRequest(data);
}
const onClick = (task, value) => () => {
closeMenuPerTeam({
ID: task.ID,
ROUTE_USER: value,
})
}
return (
<React.Fragment>
<div>
...
</div>
</React.Fragment>
);
<MenuItem onClick={ onClick(task, value) }>
{mainInformation.userTeam[0].map((value) => (
<MenuItem onClick={() => closeMenuPerTeam({
ID: task.ID,
ROUTE_USER: value,
})}>
{value} {task.ID} // Никуда не передавая, просто отображаем значение.
{ tasksData.infoTask.map((task) => (
<Menu
id="menu-per-team"
anchorEl={engineerOfTeam}
keepMounted
open={Boolean(engineerOfTeam)}
onClose={closeMenuPerTeam}
// новые пропсы
items={ mainInformation.userTeam[0] }
taskId={ task.id }
/>
)}
// Предварительно нужно достать items и taskId из props или this.props
items.map(value => {
<MenuItem onClick={() => closeMenuPerTeam({
ID: taskId,
ROUTE_USER: value,
})}> {value} </MenuItem>
})
import * as React from 'react';
import { PopoverProps } from '../Popover';
import { MenuListProps } from '../MenuList';
import { PaperProps } from '../Paper';
import { StandardProps } from '..';
import { TransitionHandlerProps, TransitionProps } from '../transitions/transition';
export interface MenuProps
extends StandardProps<PopoverProps & Partial<TransitionHandlerProps>, MenuClassKey> {
anchorEl?: PopoverProps['anchorEl'];
autoFocus?: boolean;
children?: React.ReactNode;
disableAutoFocusItem?: boolean;
MenuListProps?: Partial<MenuListProps>;
onClose?: PopoverProps['onClose'];
onEnter?: PopoverProps['onEnter'];
onEntered?: PopoverProps['onEntered'];
onEntering?: PopoverProps['onEntering'];
onExit?: PopoverProps['onExit'];
onExited?: PopoverProps['onExited'];
onExiting?: PopoverProps['onExiting'];
open: boolean;
PopoverClasses?: PopoverProps['classes'];
transitionDuration?: TransitionProps['timeout'] | 'auto';
variant?: 'menu' | 'selectedMenu';
}
export type MenuClassKey = 'paper' | 'list';
export default function Menu(props: MenuProps): JSX.Element;
tasksData.infoTask[константа номера итерации].ID