reactjs - 在 React 中从 API 获取数据的问题
问题描述
所以我的页面上基本上有 2 个组件。第一个是用户需要输入用户名的搜索组件,第二个是显示统计信息的搜索组件
这是我在 App.js 中的 API 请求调用
useEffect(()=>{
const fetchStats = async ()=> {
const result = await axios.get(`https://cors-anywhere.herokuapp.com/https://public-api.tracker.gg/v2/csgo/standard/profile/steam/${username}`,
{
headers: {
'TRN-Api-Key' : '***************************',
}
}
)
if(username !== null){
console.log(result.data)
setStats(result.data)
}
}
fetchStats()
},[username])
这是搜索组件
const Search = ({setInputText, setUsername, inputText, username}) => {
const inputHandler = (e)=> {
setInputText(e.target.value)
}
const searchHandler = (e)=> {
e.preventDefault()
setUsername(inputText)
}
return (
<div>
<form>
<input value={inputText} onChange={inputHandler} type="text"/>
<button onClick={searchHandler}>Search</button>
</form>
</div>
)
}
我遇到的问题是,当我单击用户名组件中的按钮时,表单中的值(用户名)会存储在 App.js 中的“用户名”状态中。现在我在统计组件中使用此代码。
const Stats = ({stats}) => {
return (
<div>
<h1>{stats.data.platformInfo.platformUserHandle}</h1>
</div>
)
}
export default Stats
应用程序启动时这里stats.data.platformInfo.platformUserHandle
不存在,所以它给了我很多错误。在用户输入内容并且可以将数据发送到统计信息组件之前,如何防止应用程序崩溃?
解决方案
推荐阅读
- c - 写入空白索引值的向量
- c# - 如何使用 asp.net core 2.0 Razor 页面执行下载操作
- java - 在 eclipse 中以 -h name 格式传递示例命令行参数
- javascript - 如何让Vue Filter递归?
- html - 从静态 HTML 站点重定向到 Wordpress 的最快/最安全方式(新域,具有一些永久链接结构更改)
- angular - 带三元运算符的角 loadChildren
- angular - 如何解决我从 NPM 安装中遇到的错误问题
- jestjs - 在 Jest 中禁用“您的测试套件必须包含至少一个测试”规则
- angular - 动态创建和读取全局变量
- html - 垂直对齐元素,上方 1/3 空间下方 2/3 空间