Реагировать на машинопись: useState не обновляется

Я работаю над этой страницей, где мне нужно отфильтровать некоторые сообщения на основе 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
  }
  ...

person prkmk    schedule 11.03.2021    source источник
comment
может быть, этот вопрос решит вашу проблему 1 шаг">stackoverflow.com/questions/66350320/   -  person danhuong    schedule 11.03.2021