اذهب إلى المحتوى
  • 0

إضافة post في مشروع mern

محمود_سعداوي

السؤال

السلام عليكم.

في المثال التالي: 

Capture.JPG.180ee3e9a855b22454b3822fa50ea0ad.JPG

عند الضغط على submit أريد ظهور الpost مباشرة دون إعادة تحديث الصفحة.

الكود 

initialState: {
    posts: [],
    error: false,
    loading: false,
  },
  reducers: {
    setPosts(state, action) {
      state.posts = action.payload
    },
    getPosts(state, action) {
      state.posts = action.payload
    },

api call

// Get All Posts
export function getPosts() {
  return async (dispatch, getState) => {
    try {
      dispatch(postActions.setLoading());
      const { data } = await axios.get(`${POSTS_URL}`, {
        headers: {
          "x-auth-token": getState().auth.user.token,
        },
      });
      dispatch(postActions.getPosts(data))
      dispatch(postActions.clearLoading())
      // console.log(data);
    } catch (error) {
      console.log(error);
    }
  };
}

// Create A Post
export function createPost(post) {
  return async (dispatch, getState) => {
    try {
      dispatch(postActions.setLoading());
      const data = await axios.post(`${POSTS_URL}`, post, {
        headers: {
          "x-auth-token": getState().auth.user.token,
        },
      });
      dispatch(postActions.setPosts(data.data))
      dispatch(postActions.clearLoading())
      console.log(data);
    } catch (error) {
      console.log(error);
      dispatch(postActions.clearLoading())
    }
  };
}

postsscreen

  const dispatch = useDispatch();

  const handleCreatePost = () => {
    dispatch(createPost({ text }));
    setText("");
    dispatch(postActions.getPosts());
  };

  useEffect(() => {
    dispatch(getPosts());
  }, [dispatch]);

شكرا على المساعدة

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

لا توجد أي إجابات على هذا السؤال بعد

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...