Я внедрил опрос SurveyJs (https://surveyjs.io) в нашем приложении реагирования с использованием survey-реагировать (https://www.npmjs.com/package/survey-react). Все работает нормально, но когда опрос отправлен, мы отправляем данные в БД с помощью axiosи получение ответа от API в случае успеха или нет.
Проблема заключается в том, что я провел опрос в модальном режиме, и на сайте surveyjs, похоже, есть страница "Спасибо", которую я не могу найти способпоэтому, когда я отправляю, у меня есть компонент, который повторно рендерит дважды (страница благодарности по умолчанию и мой ответ об успешном / неудачном выполнении API). Я могу перезаписать текст, используя "completeHtml" в файле JSON, но не могу отключить егоПроблема в том, что скачок на модале выглядит не очень хорошо, даже когда я перезаписываю его чем-то вроде «Processig Survey ...»
Мой модальный код:
<Dialog
open={dialogOpen}
onClose={handleClose}
aria-labelledby="Your Opinion Matters"
aria-describedby="Short Customer Survey"
className={classes.modal}
>
<DialogTitle id="alert-dialog-title" onClose={handleClose}>
{(status === '') ?
`We would like to hear from you`
:
`Thank You`
}
</DialogTitle>
<DialogContent>
{surveyActive ?
<Survey.Survey model={model} onComplete={onComplete} />
:
<span style={{fontSize: '1.5em', color: '#999'}}>{status}</span>
}
</DialogContent>
{(status !== '') &&
<DialogActions>
<Button variant="contained" onClick={handleClose} color="primary">
Close
</Button>
</DialogActions>
}
</Dialog>
МойВызов и обработка API опроса:
const setSurveyData = (data, options) => {
const authToken = sessionStorage.token;
return axios({
method: 'post',
url: '/users/survey',
headers: {
'Authorization': `Bearer ${authToken}`,
},
data: {
survey: data
}
})
.then(res => {
const data = res.data;
setStatus(data.msg);
setSurveyActive(false);
})
.catch(err => {
catchAxios(err);
})
};
// run on survey complete
const onComplete = (survey, options) => {
return setSurveyData(survey.data, options)
};
const handleOpen = () => {
setDialogOpen(true);
setSurveyActive(true);
};
const handleClose = () => {
setDialogOpen(false);
setStatus('');
};
Я смотрел на это около 5 часов и рисовал пробел ... Я перепробовал все, что мог придумать. Любая помощь будет высоко ценится,Спасибо.
PS: забыл упомянуть, что я уже пытался передать параметру showCompletedPage значение false через JSON, однако, поскольку опрос является модальным, он все равно показывает модальное название (и только название)что хуже.