Estou na parte de usar o useState para atualizar minha array de notas no li element mas não esta funcionando, não sei como fazer o render com o useState, já tentei diversas coisas diferentes mas nenhuma funcionou, com certeza deve ser alguma coisa que não estou conseguindo ver, esses são os códigos do meu app (obs.: não estou componentes com classe estou usando só as funções por isso meu código esta diferente do instrutor):
import { useState } from 'react'
import { Header } from './components/Header'
import { NoteList } from './components/NoteList'
import { NewNote } from './pages/NewNote'
export function App() {
const [notes, setNotes] = useState([])
function createNewNote(title, noteText) {
const newNote = { title, noteText }
notes.push(newNote)
console.log(notes.length, notes)
setNotes(notes)
}
return (
<>
<Header />
<NewNote createNewNote={createNewNote} />
<NoteList notes={notes} />
</>
)
}
export default App
import { useState } from 'react'
import '../styles/new-note.scss'
export function NewNote(props) {
const [title, setTitle] = useState('')
const [noteText, setNoteText] =useState('')
const handleTitleChange = event => {
setTitle(event.target.value)
// console.log(title)
}
const handleNoteTextChange = event => {
setNoteText(event.target.value)
// console.log(noteText)
}
const createNewNote = event => {
event.preventDefault()
props.createNewNote(title, noteText)
}
return (
<div className="content">
<form onSubmit={createNewNote}>
<input type="text" placeholder="Title" onChange={handleTitleChange} />
<textarea placeholder="Take a note..." onChange={handleNoteTextChange} />
<button type='submit'>Create Note</button>
</form>
</div>
)
}
import { NoteCard } from '../components/NoteCard'
import '../styles/note-list.scss'
export function NoteList(props) {
return (
<div className="notes-history">
<ul>
{props.notes.map((note, index) => {
return (
<li key={index}>
<span>{note}</span>
<NoteCard />
</li>
)
})}
</ul>
</div>
)
}
export function NoteCard() {
return (
<section>
<header>
<h3>fs</h3>
</header>
<p></p>
</section>
)
}