ReactJS表单提交此.props.history.push(';/downloads';)未链接到新页面
一旦用户在下面的函数中使用this.props.history.Push填写表单,我将尝试推送到新页面ReactJS表单提交此.props.history.push(';/downloads';)未链接到新页面,reactjs,django,forms,push,history,Reactjs,Django,Forms,Push,History,一旦用户在下面的函数中使用this.props.history.Push填写表单,我将尝试推送到新页面 handleSubmit = async event => { event.preventDefault() try { const res = await newEnquiry(this.state.formData) this.props.history.push('/downloads') console.log(res)
handleSubmit = async event => {
event.preventDefault()
try {
const res = await newEnquiry(this.state.formData)
this.props.history.push('/downloads')
console.log(res)
} catch (err) {
console.log(err.response.data)
}
}
ReactJS表单在/contacts页面上工作正常,并将信息提交到我的Django后端,因此我知道它工作正常,但是我无法重定向到工作,它会向我发送此错误消息
在我的表单标签中,工作正常,所以我很确定我的表单没有问题
Api.js
const baseUrl = '/api'
export const newEnquiry = formData => {
return axios.post(`${baseUrl}/enquiries/`, formData)
}
Views.py
class EnquiryListView(APIView):
def get(self, _request):
enquiries = Enquiries.objects.all()
serialized_enquiries = EnquirySerializer(enquiries, many=True)
return Response(serialized_enquiries.data, status=status.HTTP_200_OK)
def post(self, request):
created_enquiry = EnquirySerializer(data=request.data)
if created_enquiry.is_valid():
created_enquiry.save()
return Response(created_enquiry.data, status=status.HTTP_201_CREATED)
return Response(created_enquiry.errors)
序列化程序.py
class EnquirySerializer(serializers.ModelSerializer):
class Meta:
model = Enquiries
fields = '__all__'
对于此问题,当错误触发时,它无法读取
err.response.data
属性。如果没有错误,它将重定向您。在Django应用程序中,检查错误处理程序
应该返回什么
快速回顾try/catch
试试看{
//如果一切都通过了,运行这个模块
}捕捉(错误){
//如果出了问题,运行这个模块
}
在这种情况下,一定要检查您的全部错误是什么。它可能是一个
404
或完全出乎意料的东西。谢谢。我可以在Django应用程序中看到提交的数据,因此它已成功地将该信息放入。即使发生这种情况,它也不会重定向。你能为这个特定的路由粘贴Django应用程序的代码吗?确实出了问题,因为JavaScript没有无缘无故地给出错误。谢谢,我已经将我的代码添加到页面顶部的主代码中。这是您所需要的吗?当您在React中得到错误时。控制台中出现了什么错误?将err.response.data
替换为err
,这样我们就可以看到整个画面了。如果.data
不可用,则可能是404或类似的内容。TypeError:无法读取Form.handleSubmit(Form.js:30)中未定义的属性“push”