【发布时间】:2020-05-19 16:12:51
【问题描述】:
在执行 axios 帖子后,我无法获取任何内容。数据按预期发布到后端,但之后我无法运行任何东西。即使是发布后的 console.log 也不起作用。我已经尝试过基于 axios 的 promise 和 async await,但在通过 axios 发布后我什么也得不到。任何想法我做错了什么?
创建 React App 3.3.0
反应 16.11
反应路由器 5.1.2
import React, { Component } from 'react'
import { withRouter } from 'react-router'
import axios from 'axios'
...
class Contact extends Component {
...
submitContactHandler = async event => {
event.preventDefault()
try {
await axios.post('/mail/contact', {
userName: this.state.formData.name.value,
userEmail: this.state.formData.email.value,
userMessage: this.state.formData.message.value
})
this.props.history.push('/about')
console.log("This doesn't even run")
} catch (error) {
console.log(error)
}
}
render() {
...
return (
...
<Form onSubmit = {(event) => this.submitContactHandler(event)}>
...
</Form >
...
)
}
}
export default withRouter(Contact)
【问题讨论】:
-
已在
axios.post()中尝试过相对路径和绝对路径。console.log()在try块中可以正常工作,如果在axios.post()之前而不是之后执行。 -
那个try catch应该有错误。你见过一个吗?
console.log("err:", error)以获得更好的可见性 -
这也是我所期望的,但事实并非如此。我在 try/catch 块上方记录
console.log(this.props),并且执行得很好,尽管它仍然是浏览器控制台中显示的唯一内容。应用程序终端仅按预期显示成功日志。我被难住了。 -
尝试控制台记录 this.props.history 如果它返回一些东西
-
{length: 8, action: "POP", location: {…}, createHref: ƒ, push: ƒ, …} length: 8 action: "POP" location: {pathname: "/contact", search: "", hash: "", state: undefined} createHref: ƒ createHref(location) push: ƒ push(path, state) replace: ƒ replace(path, state) go: ƒ go(n) goBack: ƒ goBack() goForward: ƒ goForward() block: ƒ block(prompt) listen: ƒ listen(listener) __proto__: Object
标签: javascript reactjs react-router axios