有一个API,可以从数据库中提取数据,这些数据应该显示在登陆页面上。
一切似乎都拼写正确,但着陆给出未定义。
可能是什么问题? 代码:
function Link() {
let params = useParams();
try {
axios.get(`https://api.***/get_link?id=${params.id}`)
.then(res => {
if(res.data.error === false) {
document.title = `${res.data.link.artists} — ${res.data.link.title} ***`
document.getElementById('title').innerHTML = res.data.link.title
document.getElementById('artists').innerHTML = res.data.link.artists
document.getElementById('cover').src = 'https://api.***/' + res.data.link.cover
let link = res.data.link
if(link.apple) {
document.getElementById('apple').href = link.apple
document.getElementById('apple').hidden = ''
}
if(link.vk) {
document.getElementById('vk').href = link.vk
document.getElementById('vk').hidden = ''
}
if(link.yandex) {
document.getElementById('yandex').href = link.yandex
document.getElementById('yandex').hidden = ''
}
if(link.yt_music) {
document.getElementById('yt').href = link.yt_music
document.getElementById('yt').hidden = ''
}
if(link.spotify) {
document.getElementById('spotify').href = link.spotify
document.getElementById('spotify').hidden = ''
}
if(link.soundcloud) {
document.getElementById('soundcloud').href = link.soundcloud
document.getElementById('soundcloud').hidden = ''
}
if(link.itunes) {
document.getElementById('itunes').href = link.itunes
document.getElementById('itunes').hidden = ''
}
if(link.tidal) {
document.getElementById('tidal').href = link.tidal
document.getElementById('tidal').hidden = ''
}
if(link.deezer) {
document.getElementById('deezer').href = link.deezer
document.getElementById('deezer').hidden = ''
}
} else {
redirect()
}
})
} catch {
我已经绞尽脑汁了xd
您的代码片段可能不足以得出任何具体结论,但是,由于它是一个反应应用程序,您必须确保通过
useEffect
钩子更新渲染的数据,以便在获取数据后相应地更新您的页面。
此外,我相信您必须更新您的
Link()
函数才能使用 try/catch
或 .then
。将您的 axios 请求归因于 const
,代码将等待您的请求终止后再继续。
希望有帮助!