第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用react hooks調用reducer中的重置類型

如何使用react hooks調用reducer中的重置類型

慕姐4208626 2023-08-05 20:51:35
事件.jsimport React, { useEffect, useState } from 'react';import { useDispatch, useSelector } from 'react-redux';import { Link, useHistory } from 'react-router-dom';import { addEvent } from '../actions/event';const AddEvent = () => {let history = useHistory();const [event, setEvent] = useState();const createEvent = useSelector(state => {    console.log(state)    return (        state.addEvent    )});const { loading, newEvent, success, error } = createEvent;const handleChange = e => {    setEvent({ ...event, [e.target.name]: e.target.value });};const dispatch = useDispatch();useEffect(() => {    if(success) {        history.push('/')  =========>>>>>>>> It work once fine but again when I tries to open add Event it automatically redirects to '/' as it is not getting reset after redirecting    };},[success]);const submitHandler = (e) => {    e.preventDefault();    dispatch(addEvent(event));};return (    <div>        { loading ? (            <div> Loading... </div>        ) : error ? (            <div> {error} </div>        ) : (                    <form onSubmit={e => submitHandler(e)}>                        <div className="form-group">                            <label htmlFor="name" className='mt-2'>Name</label>                            <input type="text" className="form-control" id="name" name="name" onChange={e => handleChange(e)} />                        </div>                        <div className="form-group">                            <label htmlFor="description">Description</label>我正在學習如何使用 React Redux,所以我嘗試 CRUD 工作流程工作正常,但在成功添加事件后,我希望它重定向到主頁,它工作正常,但由于 React-Redux 保持其狀態(tài),因此它再次成功重定向到主頁設置為 true 所以我創(chuàng)建了另一個重置類型以將 success 設置為 false 但不知道如何在成功添加數(shù)據(jù)后每次調用
查看完整描述

1 回答

?
拉丁的傳說

TA貢獻1789條經(jīng)驗 獲得超8個贊

動作.js


const addEvent = (newEvent) => async (dispatch) => {

dispatch({ type: EVENT_ADD_REQUEST, payload:newEvent });

 try {

    const { data } = await axios.post(`http://localhost:3002/event`, newEvent);

    dispatch({ type: EVENT_ADD_SUCCESS, payload: data });

    dispatch({ type: EVENT_RESET });  ===>>> adding here it works

 }

 catch (error) {

    dispatch({ type: EVENT_ADD_FAIL, payload:error.message });

 }

};


查看完整回答
反對 回復 2023-08-05
  • 1 回答
  • 0 關注
  • 122 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號