Javascript SurveyJS:在React中禁用自动感谢消息
我使用SurveyReact()在react应用程序上实现了SurveyJs()调查。一切正常,但提交调查后,我们将使用axios将数据发布到数据库,如果成功或失败,我们将收到API的回复 问题是,我已经在一个模式中实现了调查,surveyjs似乎有一个“谢谢”页面,我找不到禁用的方法。因此,当我提交时,我有一个组件重新呈现两次(默认的感谢页面和API成功/失败响应)。我可以在JSON文件上使用“completedHtml”覆盖文本,但不能禁用它。问题是,即使我用“Processig Survey…”之类的内容覆盖它,模式上的跳转看起来也不好 我的模式代码:Javascript SurveyJS:在React中禁用自动感谢消息,javascript,reactjs,survey,surveyjs,Javascript,Reactjs,Survey,Surveyjs,我使用SurveyReact()在react应用程序上实现了SurveyJs()调查。一切正常,但提交调查后,我们将使用axios将数据发布到数据库,如果成功或失败,我们将收到API的回复 问题是,我已经在一个模式中实现了调查,surveyjs似乎有一个“谢谢”页面,我找不到禁用的方法。因此,当我提交时,我有一个组件重新呈现两次(默认的感谢页面和API成功/失败响应)。我可以在JSON文件上使用“completedHtml”覆盖文本,但不能禁用它。问题是,即使我用“Processig Surve
<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>
我已经看了大约5个小时了,现在画了一个空白。。。我已经尝试了我能想到的一切。任何帮助都将不胜感激。谢谢
PS:忘了提及我已经尝试通过JSON将showCompletedPage参数传递为false,但是,由于调查是在模式上进行的,因此它仍然显示模式标题(并且仅显示标题),这更糟糕。您需要将调查的属性设置为false。通常,当我在这里发布时,我会在几分钟内找到解决方案。作为将来的参考,我所做的是控制API响应内部的模式打开。这是非常愚蠢和简单,但我通过,onComplete将关闭对话框,然后我重新打开后,API响应进来。我真傻!:)谢谢TSV的回复,是的,我试过了,但是我使用的代码没有回复,我正在Survey.JS中寻找解决方案,但我的问题是我自己的代码结构。谢谢你。
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('');
};