#yyds干貨盤點# react筆記之學習之存儲到一個state對象中

2022-12-21 10:20:25 來源:51CTO博客


【資料圖】

前言

我是歌謠 我有個兄弟 巔峰的時候排名c站總榜19 叫前端小歌謠 曾經我花了三年的時間創作了他 現在我要用五年的時間超越他 今天又是接近兄弟的一天人生難免坎坷 大不了從頭再來 歌謠的意志是永恒的 放棄很容易 但是堅持一定很酷 微信公眾號前端小歌謠 關注公眾號帶你進入前端學習交流群

代碼案列

import React, {useState} from "react";import Card from "../UI/Card/Card";import "./LogsForm.css";const LogsForm = () => {    /*    *   當表單項發生變化時,獲取用戶輸入的內容    * */    // 創建三個變量,用來存儲表單中的數據    // let inputDate = "";    // let inputDesc = "";    // let inputTime = 0;    // const [inputDate, setInputDate] = useState("");    // const [inputDesc, setInputDesc] = useState("");    // const [inputTime, setInputTime] = useState("");    // 將表單數據統一到一個state中    const [formData, setFormData] = useState({        inputDate:"",        inputDesc:"",        inputTime:""    });    // 創建一個響應函數,監聽日期的變化    const dateChangeHandler = (e) => {        // 獲取到當前觸發事件的對象        // 事件對象中保存了當前事件觸發時的所有信息        // event.target 執行的是觸發事件的對象(DOM對象)        //console.log(e.target.value);        // setInputDate(e.target.value);        setFormData({            ...formData,            inputDate: e.target.value        });    };    // 監聽內容的變化    const descChangeHandler = (e) => {        // 獲取到當前觸發事件的對象        // 事件對象中保存了當前事件觸發時的所有信息        // event.target 執行的是觸發事件的對象(DOM對象)        //console.log(e.target.value);        // setInputDesc(e.target.value);        setFormData({            ...formData,            inputDesc: e.target.value        });    };    //監聽時長的變化    const timeChangeHandler = (e) => {        // 獲取到當前觸發事件的對象        // 事件對象中保存了當前事件觸發時的所有信息        // event.target 執行的是觸發事件的對象(DOM對象)        //console.log(e.target.value);        // setInputTime(e.target.value);        setFormData({            ...formData,            inputTime: e.target.value        });    };    // 當表單提交時,匯總表單中的數據    /*    *   在React中,通常表單不需要自行提交    *       而是要通過React提交    * */    const formSubmitHandler = (e) => {        // 取消表單的默認行為        e.preventDefault();        // 獲取表單項中的數據日期、內容、時長        // 將數據拼裝為一個對象        const newLog = {            date: new Date(formData.inputDate),            desc: formData.inputDesc,            time: +formData.inputTime        };        // 清空表單項        setFormData({            inputDate: "",            inputDesc: "",            inputTime: ""        });        console.log(newLog);        /*        *   提交表單后如何清空表單中的舊數據        *       現在這種表單,在React我們稱為非受控組件        *        *   我們可以將表單中的數據存儲到state中,        *       然后將state設置為表單項value值,        *       這樣當表單項發生變化,state會隨之變化,        *       反之,state發生變化,表單項也會跟著改變,這種操作我們就稱為雙向綁定        *       這樣一來,表單就成為了一個受控組件        *        *        *        * */    };    return (                    
);};export default LogsForm;

標簽: 觸發事件 發生變化 所有信息

上一篇:環球熱頭條丨創建使用 RESTful Web 服務的應用程序的過程
下一篇:天天觀天下!構建超媒體驅動的 RESTful Web 服務