Вставить файл в конце анкеты (json) - Javascript

У меня есть json, который содержит вопросы и ответы, которые отображаются индивидуально в div. Пользователь может щелкнуть ответ, и у меня есть функция onClick, которая переходит к следующему вопросу.

() => setQuestionIndex(() => questionIndex + 1

Я хотел бы, чтобы, когда "вопросы" json были завершены, были добавлены новые "решения" json:

onAnswer = {() => {
        if (questionIndex === question.length) {
          () => history.push('/forms/solutions')
        } else {
          () => setQuestionIndex(() => questionIndex + 1)
        }
      }}

Когда я использую только () => setQuestionIndex(() => questionIndex + 1, он отлично переходит к следующим вопросам, но условный оператор не работает, есть предположения?

Полный код:

const Form = enhance(({
  styles, scenario, questionIndex, setQuestionIndex
  }) => {
const { questions } = scenarios[scenario];
const questionTabs = questions.map((q, i) => {
if (i === questionIndex) {
  return <Tab key = {i} {...css(styles.tabActive)}> {i} </Tab>
}
return <Tab key = {i} {...css(styles.tab)}> {i} </Tab>
})

const questionPanels = questions.map((question, i, history) => {
return (
  <TabPanel key = {i}>
    <Question
      question = {question.question}
      answers = {question.answers}
      visualAnalogScale = {question.VAS}
      //onAnswer = {() => setQuestionIndex(() => questionIndex + 1)}
      onAnswer = {() => {
        if (questionIndex === question.length) {
          () => history.push('/forms/solutions')
        } else {
          () => setQuestionIndex(() => questionIndex + 1)
        }
      }}
    />
  </TabPanel>
 );
});

Почему ваше заявление обернуто {...}?

Kévin Bibollet 21.03.2019 17:30

Что вы подразумеваете под "не работает"? Каково ожидаемое поведение? Где setQuestionIndex() код функции? Использует ли он объект history, чтобы «перейти к следующим вопросам»?

MarcoS 21.03.2019 17:33

В условном выражении должно быть сказано, что если индекс вопроса равен количеству вопросов (конец json-файла), то push push json-файл решения, в противном случае перейти к следующему вопросу. Я обновил полный код

NicoBar 21.03.2019 17:44

С условным оператором, когда я нажимаю на ответ, он не переходит к следующему вопросу. Но если я использую только эту линию onAnswer = {() => setQuestionIndex(() => questionIndex + 1)}, это работает. Но я не получаю решения json в конце.

NicoBar 21.03.2019 17:52
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
28
1

Ответы 1

Это выключение на одну ошибку? Если да, то эта строка

if (questionIndex === question.length) {

Должно быть:

if (questionIndex === question.length - 1) { 

Кроме того, почему все является функцией?

Другие вопросы по теме