import
React, { useState, useEffect } from
'react'
;
import
axios from
'axios'
;
const App = () => {
const [posts, setPosts] = useState([]);
const [nuevoPost, setNuevoPost] = useState({ title:
''
, body:
''
});
useEffect(() => {
obtenerPosts();
}, []);
const obtenerPosts =
async
() => {
try
{
setPosts(response.data);
}
catch
(error) {
console.error(
'Error al obtener posts:'
, error);
}
};
const agregarPost =
async
() => {
try
{
setNuevoPost({ title:
''
, body:
''
});
obtenerPosts();
}
catch
(error) {
console.error(
'Error al agregar post:'
, error);
}
};
const eliminarPost =
async
(id) => {
try
{
await
axios.
delete
(`http:
obtenerPosts();
}
catch
(error) {
console.error(
'Error al eliminar post:'
, error);
}
};
return
(
<div>
<h1>Posts</h1>
<ul>
{
}
{posts.map((post) => (
<li key={post.id}>
<h2>{post.title}</h2>
<p>{post.body}</p>
<button onClick={() => eliminarPost(post.id)}>Eliminar</button>
</li>
))}
</ul>
{
}
<h2>Agregar nuevo post</h2>
<input
type=
"text"
value={nuevoPost.title}
onChange={(e) => setNuevoPost({ ...nuevoPost, title: e.target.value })}
placeholder=
"Título"
/>
<textarea
value={nuevoPost.body}
onChange={(e) => setNuevoPost({ ...nuevoPost, body: e.target.value })}
placeholder=
"Cuerpo"
/>
<button onClick={agregarPost}>Agregar post</button>
</div>
);
};
export
default
App;