Реагируйте на машинописный текст, копируйте значение перечисления, а не ссылку

#javascript #reactjs #typescript #enums #reference

Вопрос:

У меня есть вопрос относительно переменных и ссылок в React TypeScript или JavaScript, если хотите.

У меня есть следующее перечисление:

 enum QuestionType {  MultipleChoice,  TrueFalse,  FreeText }  

И мой код выглядит так (упрощенно):

 //somewhere in an useEffect hook //using the useState hook setSelectedQuestionType(QuestionType.TrueFalse); let previousQuestionType : QuestionType; prevQuestionType = selectedQuestionType; setSelectedQuestionType(QuestionType.MultipleChoice);  

Я ожидаю следующего результата:

 console.log(selectedQuestionType); //Expected: QuestionType.MultipleChoice or 0 console.log(prevQuestionType); //Expected: QuestionType.TrueFalse or 1  

Но фактический результат заключается в следующем:

 console.log(selectedQuestionType); //Actual: QuestionType.MultipleChoice or 0 console.log(prevQuestionType); //Actual: QuestionType.MultipleChoice or 0  

Я уже читал в некоторых сообщениях, что js хранит только ссылки на значения и что простое » = » просто создаст новую ссылку на это значение. Но я так запутался в том, как заставить это работать должным образом.

Заранее благодарю вас!

Комментарии:

1. пожалуйста, поделитесь воспроизводимым примером