在这里,我使用的是react
usestate hook
,我已经将其作为
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
存储博客数据。错误是
User.js:75 Uncaught (in promise) TypeError: setBlogs is not a function
at getBlog
错误发生在我使用setBlogs
时。
发布于 2022-06-21 05:39:33
useState
返回一个由两个元素组成的数组:一个表示当前状态的对象和一个用于状态的setter。您必须解构useState
返回到有两个对象的数组中的内容,而不是像现在这样具有两个属性的对象。
错:const { blogs, setBlogs } = useState([...]);
正确:const [ blogs, setBlogs ] = useState([...]);
https://stackoverflow.com/questions/72695796
复制相似问题