• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dostaję błąd przy próbie nadpisanie obiektu w tablicy {JS}

Object Storage Arubacloud
0 głosów
142 wizyt
pytanie zadane 5 listopada 2022 w JavaScript przez chrystian Gaduła (4,780 p.)
edycja 5 listopada 2022 przez chrystian

Jest tu funkcja nadpisująca state w którym jest tablica z notakmi 

Pojedyncza notka

const note = {
			id: new Date().getTime(),
			text: "# Text goes Here",
		};

Przy próbie zamiany value w note.text dostaję błedy 

Cannot read properties of undefined (reading 'id')

Funkcja updateująca note.text  

	function updateNote(e) {
		const { name, value, id } = e.target;
		setNotes((oldNotes) =>
			oldNotes.map((note) => {
				if (note.id === id) return { ...note, [name]: value };
				else return note;
			})
		);
	}

Child

					<Notes newNote={notes} updateNote={updateNote} />

Notes

function Notes(props) {
	const noteElements = props.newNote.map((note, index) => {
		return (
			<div key={note.id}>
				<button key={note.id}>note {index + 1}</button>
				<textarea key={note.id + 10} name="text" value={note.text} onChange={props.updateNote}></textarea>
			</div>
		);
	});

	return noteElements;
}

 

komentarz 7 listopada 2022 przez chrystian Gaduła (4,780 p.)
    const [notes, setNotes] = useState([]);

    function addNote() {

        const note = {

            id: new Date().getTime(),

            text: "# Text Goes Here",

            on: true,

        };

        setNotes((prevNote) => [note, ...prevNote]);

    }

 

komentarz 7 listopada 2022 przez ScriptyChris Mędrzec (190,190 p.)

Możesz to wystawić na codesandbox? Ja tutaj nie widzę, czemu ten undefined miałby się pojawić.

komentarz 7 listopada 2022 przez chrystian Gaduła (4,780 p.)

Link do codesandbox

komentarz 7 listopada 2022 przez ScriptyChris Mędrzec (190,190 p.)

Klikam po tym i żaden błąd się nie pojawia. Pomijam, że nie da się nic w pisać w textarea, bo wołając props.updateNote na onChange, przekazujesz tam tą samą wartość note.text zamiast tego, co właśnie wpisał użytkownik z event.target.value:

onChange={({ target: { value } }) => {
  props.updateNote(note.id, value)
}}

 

komentarz 7 listopada 2022 przez chrystian Gaduła (4,780 p.)
Dokładnie o to mi chodziło, dzięki

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 369 wizyt
pytanie zadane 29 września 2020 w JavaScript przez poldeeek Mądrala (5,980 p.)
0 głosów
1 odpowiedź 139 wizyt
pytanie zadane 13 maja 2022 w JavaScript przez chrystian Gaduła (4,780 p.)
0 głosów
1 odpowiedź 70 wizyt
pytanie zadane 12 października 2020 w JavaScript przez poldeeek Mądrala (5,980 p.)

92,568 zapytań

141,422 odpowiedzi

319,638 komentarzy

61,957 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...