Heim  >  Artikel  >  Web-Frontend  >  Was soll ich tun, wenn usestate in React beim Ändern seines Werts nicht gerendert wird?

Was soll ich tun, wenn usestate in React beim Ändern seines Werts nicht gerendert wird?

WBOY
WBOYOriginal
2022-04-29 17:48:592770Durchsuche

Methode: 1. Verwenden Sie „const [arr, setArr]=useState([change value])“, um den Statuswert zu ändern. 2. Erstellen Sie ein neues Array, weisen Sie den Wert des ursprünglichen Arrays dem neuen Array zu und verwenden Sie es „setState(Neues Array)“, um den Status zu ändern und die Adresse zu ändern, auf die das ursprüngliche Array im Stapel zeigt.

Was soll ich tun, wenn usestate in React beim Ändern seines Werts nicht gerendert wird?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, Reaktionsversion 17.0.1, Dell G3-Computer.

Was soll ich tun, wenn usestate in React nicht gerendert wird, wenn sich der Wert ändert?

Das standardmäßige flache Abhören in React besteht darin, dass die Referenz (Adresse) des Objekts im Stapel gespeichert wird. und setState ändert die Daten im Heap

Nach setArr(arr) ist die Adresse im Stapel immer noch die ursprüngliche Adresse. React erkennt, dass sich die Adresse nicht geändert hat, und geht daher davon aus, dass sich der Status nicht geändert hat Seite wird nicht neu gerendert

Lösung

Idee: Ersetzen Sie den ursprünglichen arr im Stapel. Ändern Sie einfach die angegebene Adresse

Beispiele sind wie folgt:

1) Direkt setState(zu ändernder Wert)

const [arr, setArr] = useState([])
setArr(1)

2) Erstellen Sie ein neues Array „newArr“, weisen Sie dem neuen Array den Wert des ursprünglichen Arrays zu und setzen Sie „State(newArr)“.

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn usestate in React beim Ändern seines Werts nicht gerendert wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn