@kokapuk

Почему useState setState при помощи prevstate вызывается несколько раз?

const [todos, setTodos] = useState<ITodo[]>([])
const toggleHandler = (id: number) => 
  {
    console.log("toggle handler")
    setTodos(prev => test("1", Date.now(), false));
  }

const test = (title: string, id: number, completed: boolean):ITodo[] => {
    console.log('test func')

    const newTodo: ITodo = {
      title: title,
      id: id,
      completed: completed
    }

    return [newTodo] 
  }


что выводит мне консоль:
toggle handler
test func
test func


Я только сегодня начал этим заниматься, и даже предположить не могу, почему это работает именно так, помогите пожалуйста
  • Вопрос задан
  • 296 просмотров
Решения вопроса 1
@kokapuk Автор вопроса
Я нашел ответ, как сказал Alexandroppolus, нужно выпилить React.StrictMode, но я сначала не понял, о чем идет речь, как оказалось этот стрикт идет с коробки в реакте в файле index.tsx в таком виде:
root.render(
<React.StrictMode>
    <App />
  </React.StrictMode>
);

я же сделал следующее:
root.render(
<App />
);

Спасибо Alexandroppolus!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы