这里我使用的是react
usestate hook
,我将usestate设置为
const { blogs, setBlogs } = useState([{postId:"",blogCity:"",blogTitle:"",username:"",time:""}]);
现在我想在这个usestate
中存储多个博客,但是useEffect
钩子返回setBlogs的错误不是函数。useEffect的代码是
useEffect(() => {
fetchProfileImage();
fetchPost();
getBlogs();
}, [postImage,blogs,setBlogs])
我从getBlogs函数中获取了博客,该函数是
const getBlogs =async()=>{
const response = await fetch(
`http://localhost:5000/api/post/getPost/${username}`, {
method: "POST",
headers: {
'Content-Type': 'application/json',
'auth-token': localStorage.getItem("token")
}
});
const json = await response.json();
console.log(json.result);
setBlogs( json.result);
console.log("here",blogs);
}
博客数据从数据库中正确获取,但无法通过setBlogs
存储。如何在blogs
usestate中存储博客数据。错误是
User.js:75 Uncaught (in promise) TypeError: setBlogs is not a function
at getBlog
使用setBlogs
usestate时发生错误。
1条答案
按热度按时间cyej8jka1#
useState
返回两个元素的数组:一个表示当前状态的对象和一个状态的setter。你必须将useState
返回的内容解构为一个包含两个对象的数组,而不是像现在这样包含两个属性的对象。错误:
const { blogs, setBlogs } = useState([...]);
正确:
const [ blogs, setBlogs ] = useState([...]);