検索

ホームページ  >  に質問  >  本文

React - 更新されるまでコンテンツが読み込まれない - 状態管理の問題

<p>ページを更新するまでデータは読み込まれません。問題は状態管理にあると思いますが、それを機能させることができないようです。ご協力をよろしくお願いいたします。 </p> <p>ユーザーがアカウントを登録してセッションにログインすると、ユーザーのすべての投稿が表示される必要があります。ただし、私の場合、ページを更新するまでレンダリングされません。 </p> <p>client/src/context/ContentContext.js</p> <pre class="brush:php;toolbar:false;">import { createContext, useContext, useEffect, useState } from "react"; import { ErrorContext } から "./ErrorContext"; const ContentContext = createContext({}); const ContentProvider = ({children}) => { const { setErrors } = useContext(ErrorContext); const [コンテンツ, setContents] = useState([]); useEffect(() => { fetch('/posts') .then(resp => { if (それぞれok) { resp.json().then(data => { setContents(データ); }); } }) .catch(エラー => { setErrors(エラー); }); }, [setErrors]) const addPost = (newPost) => { setContents([...contents, newPost]); } const editPost = (newPost) => { const updatedContentList = content.map(post => { if (newPost.id === post.id) { 新しい投稿を返す } それ以外 { 返却ポスト。 } }); setContents(updatedContentList); } const deletePost = (id) => { const updatedContentList = content.filter(post => post.id !== id) setContents(updatedContentList); } 戻る ( <ContentContext.Provider value={{ content, addPost, editPost, deletePost }}>{children}</ContentContext.Provider> ) } エクスポート { ContentContext, ContentProvider }</pre> <p>client/src/posts/PostDetail.js</p> <pre class="brush:php;toolbar:false;">import { useContext, useEffect, useState } from "react"; 関数 PostDetail () { const { setErrors } = useContext(ErrorContext); const { ユーザー } = useContext(UserContext); const {コンテンツ、deletePost} = useContext(ContentContext); const postId = parseInt(useParams().id); const post = content.find(post => post.id === postId); useEffect(() => { fetch(`/posts/${post.id}/likes`) .then(resp => resp.json()) .then(データ => { setLiked(data.liked); }) .catch(error => { setErrors(エラー) }) }, [post.id, setErrors]) } デフォルトの PostDetail;</pre> をエクスポートします。 <p><br /></p>
P粉809110129P粉809110129469日前443

全員に返信(1)返信します

  • P粉005134685

    P粉0051346852023-08-18 10:01:34

    大丈夫だと思います:

    リーリー

    返事
    0
  • キャンセル返事