2017-07-06 2 views
0

Alles, was ich einfach tun möchte, ist der Name der Firma zu bekommen und es in der Datenbank speicherngetValue() für SELECT

Ich habe versucht, mit Text mit zu tun, und versuchte, die unten zu holen mit Code

sport: this.refs.company.getValue(), und es funktionierte perfekt.

Dann entschied ich mich

die SelectField from Material UI für Unternehmen zu bedienen und es ist nicht die Daten abgerufen werden.

constructor(props) { 
super(props); 
this.state = { 
    value: 1, 
}; 
} 

submitResume(event) { 
    event.preventDefault(); 
    console.log(this.state.company.getValue({value})); 

CreatePost.insert({ 
     company: this.refs.company.getValue(), 

     employee: this.refs.employee.getValue(), 

    }); 
    console.log("Employee Profile Submitted!"); 
} 


handleNameChange = (event, index, value) => this.setState({value}); 

    <form onSubmit={this.submitResume.bind(this)}> 

      <SelectField 
        floatingLabelText="Company Name" 
        className="validate" 
        ref="company" 
        id="company" 
        floatingLabelStyle={{fontSize:20}} 
        fullWidth={true} 
        value={this.state.value} 
        onChange={this.handleNameChange} 
        > 
        <MenuItem value={1} primaryText="Google" /> 
        <MenuItem value={2} primaryText="Facebook" /> 
        <MenuItem value={3} primaryText="Amazon" /> 
        <MenuItem value={4} primaryText="Nest" /> 
        <MenuItem value={5} primaryText="Microsoft" /> 
      </SelectField> 

      <TextField 
       className="validate" 
       type="text" 
       ref="employee" 
       id="employee" 
       hintText="Enter Full Name" 
       floatingLabelStyle={{fontSize:20}} 
       floatingLabelText="Employee Name" 
       multiLine={true} 
       rows={1} 
       fullWidth={true} 
      /> 

Es funktioniert gut für TextField, aber nicht für SelectField.

+0

Haben Sie versucht, die 'ausgewählte' Eigenschaft anstelle von' value' zu ​​verwenden? – theUtherSide

+0

this.refs.company.selected()? Wo muss ich den Wert übergeben? –

+1

Sie verwenden das selectField als kontrollierte Komponente (Speichern des Werts in der Statusvariablen und Aktualisieren in der onChange-Funktion), ref ist hier nicht erforderlich, um den im ausgewählten Feld ausgewählten Wert zu erhalten: 'this.state.value'. –

Antwort

1

Jetzt sehen diese aktualisiert ein Sie Ihren Wert in einem der Parameter erhalten wird value, index oder event

constructor(props) { 
super(props); 
this.state = { 
    value: 1, 
}; 
} 

submitResume(event) { 
    event.preventDefault(); 
    console.log(this.state.company.getValue({value})); 

CreatePost.insert({ 
     company: this.refs.company.getValue(), 

     employee: this.refs.employee.getValue(), 

    }); 
    console.log("Employee Profile Submitted!"); 
} 


handleNameChange(event, index, value) { 
    console.log(event); 
    console.log(index); 
    console.log(value); 
    this.setState({value}); 
} 

    <form onSubmit={this.submitResume.bind(this)}> 

      <SelectField 
        floatingLabelText="Company Name" 
        className="validate" 
        ref="company" 
        id="company" 
        floatingLabelStyle={{fontSize:20}} 
        fullWidth={true} 
        value={this.state.value} 
        onChange={this.handleNameChange} 
        > 
        <MenuItem value={"Google"} primaryText="Google" /> 
        <MenuItem value={"Facebook"} primaryText="Facebook" /> 
        <MenuItem value={"Amazon"} primaryText="Amazon" /> 
        <MenuItem value={"Nest"} primaryText="Nest" /> 
        <MenuItem value={"Microsoft"} primaryText="Microsoft" /> 
      </SelectField> 

      <TextField 
       className="validate" 
       type="text" 
       ref="employee" 
       id="employee" 
       hintText="Enter Full Name" 
       floatingLabelStyle={{fontSize:20}} 
       floatingLabelText="Employee Name" 
       multiLine={true} 
       rows={1} 
       fullWidth={true} 
      /> 
+0

Wie kann ich im Konsolenprotokoll anzeigen? –

+1

siehe Ich habe meine Antwort –

+0

immer noch nicht in der Lage, den PrimaryText als meine Ausgabe im Konsolenprotokoll zu erhalten. –

0

Alles, was ich tun musste, um übergeben war, um den Textwert anstelle einer Nummer

<MenuItem value={"Google"} primaryText="Google" /> 
<MenuItem value={"Facebook"} primaryText="Facebook" /> 
<MenuItem value={"Amazon"} primaryText="Amazon" /> 
<MenuItem value={"Nest"}  primaryText="Nest"  /> 
<MenuItem value={"Microsoft"} primaryText="Microsoft" />