即使我成功地从API获取帖子并使用Dispatcher将响应保存到状态.该州没有更新.在Feed中,它显示没有找到Posts,但在posts.js(第11行)中,它使用Posts数组控制台记录状态
Feed.js
个
export default function Feed() {
const dispatch = useDispatch();
useEffect(()=>{
const postsFetch = async () => {
const res = await fetch("/api/posts?author&likes",{
headers:{
"authorization": "Bearer "+user.token,
"Content-Type":"application/json",
}
})
const data = await res.json();
dispatch(postActions.setPosts(data))
}
postsFetch();
},[])
const contextPosts = useSelector(s=>s.posts)
const user = useSelector(s=>s.user)
console.log(user)
console.log(contextPosts)
return (
<div class="container pt-4 pb-4">
{contextPosts.length == 0 && <h5 className="text-muted">No posts found</h5> }
{contextPosts.map(d=>(
<Post data={d} />
))}
</div>
);
}
posts.js | posts slice
个
import { createSlice } from "@reduxjs/toolkit";
let initialState = []
export const postsSlice = createSlice({
name: "posts",
initialState,
reducers: {
setPosts: (state, action) => {
state = action.payload;
console.log(state)
},
},
});
// Action creators are generated for each case reducer function
export const postActions = postsSlice.actions;
export default postsSlice.reducer;