Immer redux-form Werte in onChange-Ereignis
Was ist der richtige Weg, um die Werte aus einem Formular verwaltet redux-form
nach jeder form update??? Ich muss zum Versand eine Aktion jedes mal, wenn Sie die form ändern, verwenden Sie die Werte in das Formular eingegeben.
Meine aktuelle Lösung bekommt den alten Werten fest, anstatt die diejenigen, die wurden gerade aktualisiert.
onFormChange(e) {
const { fieldValue1, fieldValue2, fieldValue3 } = this.props.fields;
console.log(fieldValue1.value, fieldValue2.value, fieldValue3.value);
}
render() {
return (
<form onChange={this.onFormChange}>
//inputs here
</form>
);
}
Meine andere Lösung ist, aber ich weiß nicht, wie zuverlässig es ist:
onFormChange(e) {
console.log(e);
setTimeout(() => {
const { fieldValue1, fieldValue2, fieldValue3 } = this.props.fields;
console.log(fieldValue1.value, fieldValue2.value, fieldValue3.value);
}, 0);
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit redux-form 6, Sie können die Werte mit Hilfe der
formValueSelector
:Jetzt können Sie vergleichen die aktuellen Werte, und die vorherigen Werte in
componentWillReceiveProps
:Verwendung von redux-form bis version 6, haben Sie nicht verwenden die
formValueSelector
als redux-Formular hinzufügen, dievalues
prop automatisch Ihre eingerichtete Formular.values
Requisiten, die nicht mehr existiert.select
Funktion, die Sie definieren müssen. Es würde in etwa so Aussehen:const selector = formValueSelector('myFormName')
getFormValues
Selektor in der version 6+, wird, im Grunde, macht Sie alle Formular-Feld-Werte in eine requisite alsthis.props.values
verwendet, geben Sie Sie in Versionen vor 6.if(Object.keys(nextValue)
zuif(Object.keys(nextValues)