Я работаю над этой страницей, где мне нужно отфильтровать некоторые сообщения на основе type
. По какой-то причине хук useState не обновляет данные. Комментарии к коду лучше описывают, где что-то идет не так. Как исправить хук useState?
Чтобы уточнить, filteredPosts
должно получить новое значение от newFilteredPosts
.
Страница.tsx
import React, { useEffect, useState } from "react";
import { PostType } from "types";
import { useStyles } from "styles";
import { useAppState, useAppDispatch } from "context/store";
import { getAllPosts, setActivePost } from "context/posts/postOperations";
import { selectBoard, getAllBoards } from "context/boards/boardOperations";
const Page = () => {
const dispatch = useAppDispatch();
const classes = useStyles();
const { posts, activePost, selectedBoardId, boards } = useAppState();
const [filteredPosts, setFilteredPosts] = useState(Array<PostType>());
useEffect(() => {
getAllBoards(dispatch);
}, [dispatch]);
const updateposts = () => {
getAllPosts(dispatch, selectedBoardId);
var newFilteredPosts = Array<PostType>();
posts.forEach((p) => p.type === "mobile" && newFilteredPosts.push(p));
setFilteredPosts(newFilteredPosts); // this doesn't seem to work
console.log(newFilteredPosts); // this prints data
console.log(filteredPosts); // this shows an empty array
}
...