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

Как работать с данными из query?

Есть страница FAQ, соответсвенно там список вопросов, по клику на вопрос должен открываться ответ. Раньше было сделано так, была функция, которая при клике передавала индекс вопроса на котором клик был совершен, показывался ответе. если на этом же вопросе был повторный клик, то индекс вопроса удалялся из state и ответ скрывался.
class Questions extends PureComponent {
constructor(...args) {
		super(...args);
		this.handleOnSelectQuestion = ::this.handleOnSelectQuestion;
                this.state = {
			selectQuestion: [],
}}
handleOnSelectQuestion(question) {
this.setState(({selectQuestion}) => {
			if(selectQuestion.indexOf(question) > -1){
				return {
					selectQuestion: selectQuestion.filter(questionId => questionId !== question)
				};
			}
			return {
				selectQuestion: [... selectQuestion, question]
			};
		});
}
}

render() {
return(
<div className={styles.question_container}>
							{questionsList.map((question, index) => (
								<QuestionsCard
									key={index}
									title={question.question}
									answer={question.answer}
									onSelect={partial(this.handleOnSelectQuestion, index)}
									isOpen={selectQuestion.indexOf(index) > -1}
									index={index}
								/>
								)
							)}
						</div>
)
}

сейчас такой вариант не подходит, нужно тоже самое реализовать с помощью location.query. Не могу понять, как при клике на вопрос индекс вопроса сохранить в массиве query. Пока набросала вот такую штуку
const {location} = this.props;
const query = {...location.query, question: [...location.query.question, question]};

но в консоли индексы почему то и строчные и числовые. console.log(query.question) => take.ms/23zdM
  • Вопрос задан
  • 82 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Нетология
    Frontend-разработка на React
    10 недель
    Далее
  • Академия Eduson
    React-разработчик
    2 месяца
    Далее
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Утилита, которой вы парсите query string, возвращает значения в виде строк. Что очевидно.
Вопрос в чем, собственно? Не знаете как string к number привести?
Можно так:
const string = '1';
const number = Number.parseInt(string);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
от 250 000 до 300 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽