Daily React 3 - 데이터 추가 및 삭제
11470 단어 webdevreactjavascript
그래서 동기 부여는,,, 대학 학부생과 대학원생 모두 교과서에서 도대체 무슨 일이 일어나고 있는지 모르기 때문에 수학에서 똑같이 어려움을 겪고 있다는 것입니다. 대학 1학년 때 많은 사람들이 시험에 대한 공포에 휩싸입니다. 시험은 무언가를 계산하라고 요구하는 것이 아니라(예: 1+1이 무엇입니까?) 무언가를 '증명'하라는 것입니다(왜 두 개의 음수를 곱하면 양수가 됩니까?) ?). 사람들이 당황하는 것은 놀라운 일이 아닙니다. 더욱이, 일단 증명이 무엇인지 이해하게 되면, 학생들은 증명이 과학적 발견과 인류 발전에 가져올 수 있는 것이 무엇인지 완전히 맛보지 못한 채 이미 졸업하고 있습니다.
그래서 대학에서 수학 증명을 배우는 사람들에게는 매우 느릴 수 있고 더 나쁜 것은 어떤 사람들은 절대 답을 주지 않습니다. 좋아, 배우는 데 도움이 될 수 있지만 내 gpa 비용도? 아니! 결국 일어나는 일은 사람들이 코스를 포기하는 것입니다. 짜잔! 증명과 공리가 모두 있고 사람들이 10년 전에 보았던 교과서로 돌아가지 않고도 수학 정리를 발견하는 데 기여할 수 있는 쉽게 액세스할 수 있는 수학 저장소 앱을 만들어 봅시다. 따라서 전문가의 경우에도 이것은 훨씬 더 빠른 수학적 발견을 가져올 수 있습니다.
TLDR? 괜찮아. 이것은 수학 공리와 정리가 저장되는 앱이며 한 번의 클릭으로 볼 수 있습니다. 이해가 안 되세요? 시간을 가지거나 떠나십시오. 인생에는 즐길 수 있는 다른 많은 것들이 있지만 증거를 좋아하고 그것을 탐구하고 싶다면 계속 찾아보기만 하면 됩니다.
그래서 지난번부터 문장을 추가하고 수학 문장을 삭제할 수 있는 기능을 추가했는데 클릭하여 다른 수학 교과서로 이동해도 그 상태가 사라지지 않습니다.
따라서 여기에서 볼 수 있는 두 개의 핸들러가 있습니다. 하나는 수학 문을 추가하기 위한 핸들러이고 다른 하나는 수학 문을 제거하기 위한 핸들러입니다.
항목을 삭제하고 항목을 배열에 연결하고 이를 사용하여 내 공리 상태를 업데이트하는 데 필터 메서드를 사용했습니다(
setAxioms
사용).핸들러에 대한 코드의 세부사항은 다음과 같습니다.
import React, { useState, useEffect } from "react";
import data from "./data";
import { v4 as uuidv4 } from "uuid";
const Statements = (props) => {
const [axioms, setAxioms] = useState(props.statements);
//this connects the state from Components state
useEffect(() => {
setAxioms(props.statements);
}, [props.statements]);
const removeItem = (id) => {
let unremovedItem = axioms.filter((sentence) => {
return sentence.id !== id;
});
setAxioms(unremovedItem);
data[props.index].statements = unremovedItem;
};
const handleSubmit = (e) => {
e.preventDefault();
const newAxiom = axioms.concat({
id: uuidv4(),
statement: document.getElementById("statement").value,
});
setAxioms(newAxiom);
data[props.index].statements = newAxiom;
document.getElementById("statement").value = "";
};
return (
<>
<ol>
{axioms.map((sentence) => {
const { id, statement } = sentence;
return (
<li key={id} className="sentences">
<p>
<strong>{statement}</strong>
</p>
<button>EDIT</button>
<button onClick={() => removeItem(id)}>
REMOVE
</button>
</li>
);
})}
</ol>
<div className="form">
<form onSubmit={handleSubmit}>
<input
type="text"
name="axiom"
id="statement"
required="required"
/>
<button>ADD</button>
</form>
</div>
</>
);
};
export default Statements;
이것은 분명히 UI 전용이며 이 추가 및 삭제된 문은 새로고침되면 사라집니다. 따라서 다음에 해야 할 일은 CRUD 앱(서버 측)을 만들고 이 클라이언트 측 앱에 연결하는 것입니다.
모든 코드는 내github에 있습니다 :)
Reference
이 문제에 관하여(Daily React 3 - 데이터 추가 및 삭제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hwangs12/daily-react-3-adding-and-deleting-data-2617텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)