Назад к задачам
МТСПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
6
Проведение ревью и отладка React‑компонентов
Компании, где спрашивали:
Условие задачи
В этом задании требуется выполнить обзор кода и исправить найденные недочёты по своему усмотрению.
const ListItem = (itemProps) => {
const { label, handleToggle } = itemProps;
return (
<li><input type="checkbox" onChange={handleToggle} name={label} />{label}</li>
);
};
export default function List() {
const [checkedItems, setCheckedItems] = useState([]);
useEffect(() => {
const onDblClick = () => console.log('dblclicked');
document.addEventListener('dblclick', onDblClick);
return () => document.removeEventListener('dblclick', onDblClick);
}, []);
const toggleItem = (e) => {
const itemName = e.target.name;
if (checkedItems.includes(itemName)) {
setCheckedItems(checkedItems.filter(el => el !== itemName));
} else {
setCheckedItems([...checkedItems, itemName]);
}
};
const cities = [
{ name: 'Moscow' },
{ name: 'St. Petersburg' },
{ name: 'London' },
];
const carBrands = [
{ name: 'Toyota' },
{ name: 'Haval' },
{ name: 'Nissan' },
];
return (
<div>
<ul>Посещённые вами города: {cities.map(el => <ListItem key={el.name} handleToggle={toggleItem} label={el.name} />)}</ul>
<ul>Желаемые вами марки автомобилей: {carBrands.map(el => <ListItem key={el.name} handleToggle={toggleItem} label={el.name} />)}</ul>
</div>
);
}