Доступ к имени содержимого useState из строки - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть следующий код в ReactJS приложении:

this.state = {
   type1: 0,
   type2: 0,
   type3: 0
}

const setCount = (num, type) => {
   let newNum = this.state[type];

   newNum = newNum + num * (this.state[type] >= 5 ? 2 : 1);
}

Но сейчас я работаю в функциональном компоненте и использую хуки для управления состоянием, поэтому мой код выглядит так:

   const [type1, setType1] = useState(0);
   const [type2, setType2] = useState(0);
   const [type3, setType3] = useState(0);

const setCount = (num, type) => {

   // Need help here
}

Есть ли способ скопировать функцию в старом коде, которая будет использоваться просто как с перехватчиками? У меня нет опыта реагирования на хуки, и я действительно не хочу делать проверку по каждому случаю на основе «if type === 'type1' ..."

1 Ответ

1 голос
/ 23 апреля 2020

Вы можете попробовать объединить три types в объект и использовать их в одном useState примерно так:

const [state, setState] = useState({
  type1: 0,
  type2: 0,
  type3: 0
});


const setCount = (num, type) => {
   let newNum = state[type];

   newNum = newNum + num * (state[type] >= 5 ? 2 : 1);
}

Дайте мне знать, если это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...