Aktywne Wpisy
grzechu1999 +923
SebastianDosiadlgo +121
Matematyka jest prosta. Finanse z Sebcelem
Metoda Contrawise: Jeśli chcesz pomnożyć jakąś liczbę * 10 ryzykując pomyłką podczas mnożenia - zrób odwrotnie - zamiast tego dodaj ją do siebie 10 razy.
Po prostu.
#sebcel
Metoda Contrawise: Jeśli chcesz pomnożyć jakąś liczbę * 10 ryzykując pomyłką podczas mnożenia - zrób odwrotnie - zamiast tego dodaj ją do siebie 10 razy.
Po prostu.
#sebcel
Jednak po zmianie konkretnego elementu nic się nie dzieje, jednak w konsoli widać że jest on zmieniony.
Ktoś wie dlaczego tak jest i jak to poprawić?
#react #javascript
-wszystkie li w map muszą mieć key z unikalną wartością (dokładnie to co powiedział @Marmite)
-w setNumbers musisz przekazywać nowa tablice zapis
var newNumbers = numbers nie tworzy nowej tablicy tylko tworzy nową referencje do istniejącej tablicy. Powinieneś zrobić np. coś takiego
setNumbers([...numbers])
Pytanie jeszcze mam czy coś takiego jak key={number.id} wystarczy skoro indexu nie mogę dawać?
Jeszcze jedno rozwiązanie z key znalazłem na stacku żeby po prostu użyć React.Children.toArray.
Wielkie dzięki za pomoc. Z tą referencją sam powinienem się domyślić xD
[{
id: 'xx',
value: ''
}]
czemu nie po prostu
setNumbers(numbers)
aby wywołać zmianę stanu nowa wartość musi się różnić od starej, przez różnić mam na myśli
nowa zmienna !== stara zmienna
co w przypadku arr2 jest niespełnione bo zmienna arr2 dalej jest dokładnie ta samą zmienną, co prawda doszły do niej nowe wartości, ale referencja samej zmiennej się nie zmieniła zobacz sobie coś takiego
var a = [1];
var b = a;
b.push(2);
console.log(a, b); //[1,2],
kliknij następująco:
-test ref
-dodaj do arr2
-test ref
-dodaj do arr
-test ref
zobacz, że rerender następuje dopiero jak klikniesz dodaj do arr bo tylko w tym wypadku referencja się zmieniła, tak samo zobaczysz, że tylko porównanie arr === test będzie skakało z false/true zależnie czy przed kliknięciem test ref nacisnąłeś dodaj do arr, bo jeżeli nie to będzie zawsze true (oprócz pierwszego kliku
a spoko, spojrzalem tylko na ta jedna linijke i myslalem, ze numbers to jakas lokalna tablica ( ͡º ͜ʖ͡º)