Асинхронные функции должны вызываться в useEffect в таком случае. Поместите setNoteArr(getData()) в useEffect с пустыми зависимостями [] и он будет вызываться при монтировании компонента.
Вообще ваш компонент должен выглядеть так:
const App = () => {
const [noteArr, setNoteArr] = useState([])
useEffect(() => {
(async () => {
const result = await getData();
setNoteArr(result);
})()
}, []);
useEffect(() => {
return () => {
console.log(noteArr);
};
}, [noteArr]);
return (
<div className="App">
<NoteInfo/>
<NoteList noteArr={noteArr} setNoteArr={setNoteArr}/>
</div>
);
}
Тогда все будет работать как надо и читаемость улучшится