From 23db798577598cf14349031a308b90404a74f34b Mon Sep 17 00:00:00 2001 From: Laktionov Anton Date: Tue, 19 May 2026 20:44:39 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=D0=B8=20us?= =?UTF-8?q?eReducer=20=D0=B4=D0=BB=D1=8F=20=D1=81=D1=87=D0=B5=D1=82=D1=87?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.jsx | 81 ++++++++++++++++++++++++----------------------------- 1 file changed, 36 insertions(+), 45 deletions(-) diff --git a/src/App.jsx b/src/App.jsx index 535ad4c..c1dfb01 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,51 +1,41 @@ -import { useState } from 'react' +import { useState, useReducer } from 'react' + +function counterReducer(state, action) { + switch (action.type) { + case 'increment': + return state + 1 + case 'decrement': + return state - 1 + case 'reset': + return 0 + case 'set_value': + return action.value + default: + return state + } +} + +function Counter() { + const [count, dispatch] = useReducer(counterReducer,0); + + return ( +
+ Счетчик: {count} + + + + +
+ ) +} function App() { - const [tasks,setTasks] = useState([]); + const [tasks, setTasks] = useState([]) + const [filter, setFilter] = useState('all') + const [sortBy,setSortBy] = useState('date') - //Неправильный вариант решения - const toggleTask = taskId => { - const task = tasks.find(t => t.id === taskId); - task.complite = !task.complite; // Мутация - setTasks(tasks) - } - //Правильный вариант решения - const toggleTask = taskId => { - setTasks(tasks.map(task => - task.id === taskId ? {...task, complite: !task.complite} : task - )) - } - - const [user, setUser] = useState({ - name:'Иван', - email:'ivan@example.com', - age: 22, - address: { - city: 'Syktyvkar', - street: 'Babushkina', - house: 19, - } - }) - const updateName = newName => { - setUser({ - ...user, - name: newName, - }); - } - const updateProfile = updates => { - setUser({ - ...user, - ...updates, - }); - } - const updateCity = newCity => { - setUser( - ...user, - address: { - ...user.address, - city: newCity - } - ); + const addTask = newTask => { + setTasks([...tasks,newTask]) } @@ -54,6 +44,7 @@ function App() { <> {/* Добавьте тестовый контент для проверки */}

Hello, React!

+ ) }