617 Stimmen

Korrekte Änderung der Zustandsarrays in React.js

Ich möchte ein Element am Ende eines state-Arrays hinzufügen. Ist dies der richtige Weg?

this.state.arrayvar.push(newelement);
this.setState({ arrayvar:this.state.arrayvar });

Ich mache mir Sorgen, dass das direkte Ändern des Arrays mit push Probleme verursachen könnte - ist das sicher?

Die Alternative, eine Kopie des Arrays zu erstellen und diese mit setState festzulegen, scheint verschwenderisch.

-2voto

MadKad Punkte 1

Dies hat bei mir funktioniert, um ein Array innerhalb eines Arrays hinzuzufügen

this.setState(prevState => ({
    component: prevState.component.concat(new Array(['neu', 'neu']))
}));

-2voto

// den Wert abrufen, den Sie hinzufügen möchten
const valor1 = event.target.elements.valor1.value;

// im Objekt hinzufügen
const todo = {
    valor1,
}

// jetzt fügen Sie den neuen Wert einfach in den Status ein

// prevlista ist der Wert des alten Arrays vor dem Update, er nimmt den alten Arraywert, kopiert ihn und fügt einen neuen Wert hinzu
setValor(prevLista => {
    return prevLista.concat(todo)
})

-3voto

ANUBHAV RAWAT Punkte 1
//------------------Code wird in TypeScript zurückgegeben

const updateMyData1 = (rowIndex: any, columnId: any, value: any) => {

    setItems(old => old.map((row, index) => {
        if (index === rowIndex) {
        return Object.assign(Object.assign({}, old[rowIndex]), { [columnId]: value });
    }
    return row;
}));

-10voto

Hamid Hosseinpour Punkte 129

Dieser Code funktioniert für mich:

fetch('http://localhost:8080')
  .then(response => response.json())
  .then(json => {
    this.setState({mystate: this.state.mystate.push.apply(this.state.mystate, json)})
  })

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X