devlinb / react-native-simple-survey

Simple to use JSON based survey component for React Native
MIT License
63 stars 28 forks source link

Changing the state of the survey not working/ new questions not appearing #17

Open sanchocreativo opened 4 years ago

sanchocreativo commented 4 years ago

Based on answer submitted, I tryed to concat the previous state of the survey with a new array of questions and the new questions are not appearing.

State:

  constructor(props) {
        super(props);
        this.state = { 
            backgroundColor: PURPLE, 
            answersSoFar: '', 
            countryState: '',
            survey: [
                {
                    questionType: 'SelectionGroup',
                    questionText:
                        '¿Como te encuentras de estado de salud? ',
                    questionId: 'radiopais',
                    questionSettings: {
                        allowDeselect: false,
                    },
                    options: [
                        {
                            optionText: 'Bien 💚',
                            value: 'si'
                        },
                        {
                            optionText: 'Mal 🔴',
                            value: 'no'
                        },

                    ]
                },

...continues...

  onAnswerSubmitted(answer) {
        this.setState({ answersSoFar: this.surveyRef.getAnswers() });
        switch (answer.questionId) {
            case 'radiopais': {
                if (answer.value == 'si') {
                    this.setState({ 
                        survey: [...this.state.survey, ...countryQe]
                    });               
                }
                break;
            }
            default:
                break;
        }

    }
sanchocreativo commented 4 years ago

onAnswerSubmitted(answer) { this.setState({ answersSoFar: this.surveyRef.getAnswers() }); switch (answer.questionId) { case 'radiopais': { if (answer.value.value == 'si') { this.setState({ survey: [...this.state.survey, ...countryQe] });
} break; } default: break; }

}

I am sorry it was my mistake. It was if(answer.value.value). However when last question is set it doesnt send an onAnswerSubmitted so the new question is not rendered. So the issue remains opened regardless.