Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { useState } from "react";
import "./App.css";
import PaymentForm from "./components/PaymentForm/PaymentForm";
import Expenses from "./components/Payments/Expenses";
import ExampleComponent from "./components/Payments/Test"

function App() {
const [expenses, setExpenses] = useState([
Expand All @@ -22,15 +23,32 @@ function App() {
amount: data.price,
date: new Date(data.today),
},
...expenses
]);
};

const deleteExpenseItem = (index) => {
//확인용
//console.log(id);
//1. filter
// const newFilteredArray = expenses.filter((item) => item.id !== id);
// setExpenses(newFilteredArray);

//2.slice
const beforeArray = expenses.slice(0, index);
const afterArray = expenses.slice(index+1); //끝까지는 콤마해서 또 적는 거 뒤에 생략해도된다함.
setExpenses([...beforeArray, ...afterArray]);
}

return (
<>
<PaymentForm getPaymentFormData={getPaymentFormData} />
<Expenses items={expenses} />
<Expenses items={expenses} deleteExpenseItem={deleteExpenseItem}/>
<ExampleComponent/>
</>
);
}

export default App;


4 changes: 4 additions & 0 deletions src/components/Payments/ExpenseItem.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,19 @@ import Card from "../UI/Card";
import "./ExpenseItem.css";

const ExpenseItem = (props) => {
//props.id 를 가져왔잖아
return (
<Card className="expense-item">
<ExpenseDate date={props.date} />
<div className="expense-item__description">
<h2>{props.title}</h2>
<div className="expense-item__price">${props.amount}</div>
<button onClick={() => props.deleteExpenseItem(props.index)}>삭제하기</button>
</div>
</Card>
);
};

export default ExpenseItem;


8 changes: 7 additions & 1 deletion src/components/Payments/Expenses.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,21 @@ import "./Expenses.css";
const Expenses = (props) => {
return (
<Card className="expenses">
{props.items.map((item) => (
{props.items.map((item, index) => (
<ExpenseItem
key={item.id}
id={item.id}
//id값 추가함
index={index}
title={item.title}
amount={item.amount}
date={item.date}
deleteExpenseItem={props.deleteExpenseItem}
/>
))}
</Card>
);
};

export default Expenses;

19 changes: 19 additions & 0 deletions src/components/Payments/Test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import React, { useState, useEffect } from 'react';

function ExampleComponent() {
const [count, setCount] = useState(0);

useEffect(() => {
console.log('count 값이 변경될 때마다 실행됨');
}, [count]); // count가 의존성 배열에 있으므로 count 값이 변경될 때만 실행됨

return (

<div>
<p>Count: {count}</p>
<button onClick={() => setCount(count + 1)}>증가</button>
</div>
);
}

export default ExampleComponent;