【发布时间】:2021-05-12 16:06:45
【问题描述】:
嗨,我试图在我的 fetch 调用中设置一个状态,当我尝试访问它返回未定义的状态时。我不知道为什么有人可以帮忙?
var [articlearray, setArticle]= React.useState([]);
var options = {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({headline: props.headline})
};
fet(options)
function fet(options){
fetch('/headlines', options).then(response => response.json()).then(data =>{
var newsData = data.newsArray
setArticle(newsData)
})
}
console.log(articlearray[0]);
【问题讨论】:
-
如果没有看到整个组件就不可能说,但您的
console.log可能在获取完成之前正在运行。 -
您的代码没有从上到下执行。您的
console.log在您的 fetch 回调运行之前很久就执行了。此外,setArticle是异步的,所以articlearray在下一个组件渲染之前将不可用。你应该习惯于使用console.log来调试你的代码。 -
这很疯狂,因为它昨天对我有用。是的,我需要 POST
-
如果它是异步的,您知道我将如何更改它以便访问文章数组变量吗?