2016-09-12 3 views
0

Redux - wie Eingabewert trotz reRender speichern? Nun kann es Wert setzen, Änderung speichern, aber nur 1 Punkt Daten vor Also wenn ich auf 2-nd - wird 1-st erhaltenRedux - wie Eingabewert trotz reRender speichern?

constructor(props) { 
    super(props); 
    this.fields = {} 
} 
.... 
onChangeName(e) { 
    this.fields.tableName_input = e.target.value 
} 
onChangeParticipants(e) { 
    this.fields.tableParticipants_select = e.target.value 
} 
componentDidUpdate(params){ 
    if (params.editing){ 
     console.log(params) 
     let tableName_input = this.fields.tableName_input && this.fields.tableName_input || params.table.name 
     ReactDOM.findDOMNode(this.refs.tableName_input).value = tableName_input 
     let tableParticipants_select = this.fields.tableParticipants_select && this.fields.tableParticipants_select || params.table.participants 
     ReactDOM.findDOMNode(this.refs.tableParticipants_select).value = tableParticipants_select 
    } 
} 
+0

In Ihrer Frage gibt es keinen Redux-Code. – Tyrsius

+0

Das Problem war in Redux-Versand - wenn Editing Reducer mit params.editing = true aufgerufen wurde, aber alle anderen Call Default Case, aber dieser Parameter war immer noch wahr. Ich dachte dieses Problem in meinem React-Code in der Komponente, oben geschrieben –

Antwort

0

Bitte fügen Sie den Code, der die Spar feuert, ich denke, das Problem Es ist in wie Sie den Parameter Felder aktualisieren.

Aber, dies als eine Eigenschaft zu tun ist nicht gut, sollten Sie die Felder Werte als ein Zustand halten, wenn Sie Redux verwalten, würde ich Ihnen empfehlen, einen Blick auf redux-form zu werfen, diese Bibliothek ist ziemlich genial, und erlaubt Ihnen, die Formularfelder in den redux-Zustand zu bringen, was zum Testen und zur Reinhaltung Ihrer Komponenten nützlich ist. Der Inhalt befindet sich im redux-Zustand.

Verwandte Themen