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!
+
>
)
}