Skip to content

Commit bbd4de9

Browse files
committed
Using the Effect Hooks -app.tsx & ReminderList.tsx
1 parent 763ec58 commit bbd4de9

File tree

3 files changed

+17
-12
lines changed

3 files changed

+17
-12
lines changed

Section9-React-with-TypeScript/reminders-app/src/App.tsx

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
1-
import React, { useState } from "react";
1+
import React, { useEffect, useState } from "react";
22
import logo from "./logo.svg";
33
import "./App.css";
44
import ReminderList from "./components/ReminderList";
55
import Reminder from "./models/reminder";
6-
6+
import reminderService from "./services/reminder";
77

88
function App() {
9-
const [reminders, setReminders] = useState<Reminder[]>([
10-
{ id: 1, title: "Reminder 1" },
11-
]);
9+
const [reminders, setReminders] = useState<Reminder[]>([]);
10+
11+
useEffect(() => {
12+
loadReminders();
13+
}, []);
14+
15+
const loadReminders = async () => {
16+
const reminders = await reminderService.getReminder();
17+
setReminders(reminders);
18+
};
1219

1320
return (
1421
<div className="App">

Section9-React-with-TypeScript/reminders-app/src/components/ReminderList.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
import React from 'react';
22
import Reminder from '../models/reminder';
33

4-
5-
64
interface ReminderListProps {
75
items: Reminder[]
86
}
97

108
function ReminderList({ items }: ReminderListProps) {
119
return (
12-
<ul>
13-
{items.map(items => <li key={ items.id}>{items.title}</li>)}
10+
<ul className='list-group'>
11+
{items.map(items => <li className='list-group-item' key={ items.id}>{items.title}</li>)}
1412
</ul>
1513
);
1614
}

Section9-React-with-TypeScript/reminders-app/src/services/reminder.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@ import Reminder from '../models/reminder';
44

55
class ReminderServices {
66
http = axios.create({
7-
baseURL: 'https://jsonplaceholder.typicode.com'
7+
baseURL: 'https://jsonplaceholder.typicode.com/'
88
});
99

1010
async getReminder() {
11-
const response = await this.http.get<Reminder[]>('/todo');
11+
const response = await this.http.get<Reminder[]>('/todos');
1212
return response.data
1313
}
1414

1515
async addReminder(title: string) {
16-
const response = await this.http.post<Reminder[]>('/todo', { title });
16+
const response = await this.http.post<Reminder>('/todos', { title });
1717
return response.data
1818
}
1919

0 commit comments

Comments
 (0)