Mar*_*chi 2 django-rest-framework reactjs
我试图在 reactJS 中获取我的 api 请求的正文。它在 submitHandler 函数上返回正确的“主体”,但在不同的组件上调用时返回 [object Object]。下面是我的代码:
登录(提交处理程序):
submitHandler(event) {
event.preventDefault()
axios
.post("http://localhost:8000/rest-auth/login/", this.state)
.then(res => {
if (res.data){
sessionStorage.setItem('data', res)
this.setState({redirect:true})
}
console.log(res.data)
})
.catch(err => {
this.setState({
error: true, errorMessage: err
})
// console.log(this.state.errorMessage)
})
}
Run Code Online (Sandbox Code Playgroud)
配置文件(componentDidMount):
componentDidMount()
{
if(sessionStorage.getItem('data')){
let user_data = sessionStorage.getItem('data')
console.log(user_data)
}
else {
this.setState({
redirect:true
})
}
}
Run Code Online (Sandbox Code Playgroud)
componentDidMount 返回 [object Object] 而不是 api body 响应。
这与 API 无关,而与sessionStorage您正在使用的有关。
您只能将字符串存储在本地存储或会话存储中;该setItemAPI将隐式调用.toString()上任何你传递,这对于对象的结果[object Object]。
您需要将内容编码为例如 JSON,即
sessionStorage.setItem('data', JSON.stringify(res.data))
Run Code Online (Sandbox Code Playgroud)
并在加载时对其进行解码,
let user_data = JSON.parse(sessionStorage.getItem('data'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |