Задать вопрос
@Artem641

Почему useState отказывается работать когда массив объявлен через const?

У меня два состояния - в первом массив объявлен через let, а во втором через const.
Второе состояние (value) работает прекрасно, а вот первое не хочет работать через const.
import { useState } from 'react'
import './App.css'

export const App = () => {
  let [counter, setCounter] = useState(0)
  const [value, setValue] = useState('---')

  const increment = () => {
    counter = setCounter(counter + 1)
  }

  const decrement = () => {
    counter = setCounter(counter - 1)
  }
  console.log(counter)
  return (
    <div className="wrapper">
      <h1>counter: {counter}</h1>
      <h2>{value}</h2>
      <input
        type="text"
        value={value}
        onChange={(e) => {
          setValue(e.target.value)
        }}
      />
      <button onClick={increment}>increment</button>

      <button onClick={decrement}>decrement</button>
    </div>
  )
}
  • Вопрос задан
  • 112 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
У меня все работает, как через let так и через const
import { useState } from 'react';
import './App.css';

export const Test = () => {
  let [counter, setCounter] = useState(0);
  const [value, setValue] = useState('---');

  const increment = () => {
    counter = setCounter(counter + 1);
  };

  const decrement = () => {
    counter = setCounter(counter - 1);
  };
  console.log(counter);
  return (
    <div className="wrapper">
      <h1>counter: {counter}</h1>
      <h2>{value}</h2>
      <input
        type="text"
        value={value}
        onChange={(e) => {
          setValue(e.target.value);
        }}
      />
      <button onClick={increment}>increment</button>

      <button onClick={decrement}>decrement</button>
    </div>
  );
};
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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