【发布时间】:2021-11-09 19:36:09
【问题描述】:
我做了类似的事情,当我获取数据时,我拉取stackoverflow用户,当stackoverflow用户不存在时,我想使用useState()显示错误页面
在我的 Fetching API 中,我编写了该函数
const [isError, setIsError] = useState<boolean>(false)
const [data, setData] = useState<any>([])
const fetchUser = async () => {
await axios.get("URL")
.then(userData => {
if (userStats.data.items.length === 0) {
setIsError(true)
console.log("User Doesn't Exist")
}
else {setData(userStats.data.items[0])}
//Up there I decalre my useState with that fetched API
})
}
当我在输入字段中输入一些用户确实不存在的随机字母时,我会检查我的 useState 布尔值
如果是真的我想返回我的ErrorPage 组件如果它是假的Success Prop Componenet
if(isError){
return <ErrorPage />
}
return <Success username={data.userName}/>
我进入控制台日志 -> "User Doesn't Exist" 还有 React 错误
无法读取未定义的属性(读取“用户名”)
我知道userName 不存在于数据中,但当isError 为真时,为什么我的 if 语句不忽略最后一次返回?
上面的代码显示的是我所做的逻辑
如果有其他遗漏的请评论我,我会编辑它
【问题讨论】:
标签: reactjs typescript api axios use-state