2017-02-21 7 views
1

Ich verwende Redux-Form und ich kann nicht innerhalb meiner Eingaben eingeben, nachdem ich die initialize Methode und componentDidUpdate() hinzufüge. Wenn ich versuche, meine E-Mail einzugeben, erscheinen keine Zeichen. Ich vermute, dass alle Eingänge gesteuert werden? Wenn ja, wie würde ich damit umgehen?Warum kann ich meine Felder nicht eingeben?

import { reduxForm, Field, initialize } from 'redux-form'; 

const CustomComponent = function(field) { 
      return(
       <div> 
        <input { ...field.input } type={field.type} placeholder={field.placeholder} /> 
       </div> 
      ); 
     } 

//class instantiation 

componentDidUpdate(){ 
    this.handleInitialize(); 
} 

handleInitialize() { 
    const initData = { 
     "name": this.props.name 
    }; 
    this.props.initialize(initData); 
} 



render() { 
    const { handleSubmit } = this.props; 


    return (
     <div> 
      <form onSubmit={handleSubmit(this.onSubmit)}> 
       <div> 
        <Field name="name" component={CustomComponent} type="text" placeholder="Name" /> 
        <Field name="email" component={CustomComponent} type="email" placeholder="Email" /> 
       </div> 
       <button type="submit">Submit</button> 
      </form> 
     </div> 
    ); 
} 
+0

Haben Sie versucht, die Eingabe ohne div wrapper in CustomComponent zurückzugeben? – Andrew

+0

Das funktioniert nicht. Gleiches Problem – joethemow

+0

@MarkFitzgerald die Antwort auf diese Frage, die Sie gepostet haben, gilt nicht, weil ich das bereits vor dem Posten der Frage implementiert habe. – joethemow

Antwort

0

Sie können Ihre CustomComponent innerhalb der render() Methode nicht definieren. Dadurch verliert die Komponente den Fokus, wenn Sie mit der Eingabe beginnen.

Haben Sie den Reducer richtig in Ihrer Redux-Konfiguration eingerichtet?

+0

Ich habe CustomComponent nach außerhalb meiner Klasse verschoben, aber ich kann immer noch nicht in meine Felder eingeben. – joethemow

+0

Ich habe mich in meinem componentDidUpdate angemeldet und festgestellt, dass es jedes Mal aufgerufen wird, wenn ich versuche, etwas in die Felder einzugeben. Ich bin mir ziemlich sicher, dass dies das Problem ist. – joethemow

Verwandte Themen