محمود_سعداوي نشر 30 أبريل أرسل تقرير مشاركة نشر 30 أبريل السلام عليكم. في المثال التالي: عند الضغط على 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]); شكرا على المساعدة اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
محمود_سعداوي
السلام عليكم.
في المثال التالي:
عند الضغط على 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]);
شكرا على المساعدة
رابط هذا التعليق
شارك على الشبكات الإجتماعية
0 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.