2017-12-22 8 views
2

Ich habe material-ui - select und möchte programmgesteuert auf dieses Element konzentrieren.So stellen Sie den Fokus auf FormControl ein - Auswählen? (reagieren)

<FormControl 
className="select100"> 
<Select 
    ref={(formControll) => { this.formControll = formControll; }}         
    native 
    value={value} 
    input={<Input id="integer" />} 
> 
    {possibleOptions.map((item, key) => { 
     return (<option value={item} key={key}>{item}</option>) 
    })} 
</Select> 

Ich habe versucht, mit dem ref und schreiben this.formControll.focus(); aber reagieren bedeutet mir, dass Fokus() keine Funktion ist. Mit einem Knopf zum Beispiel funktioniert der Verweis.

PS: Ich brauche nicht autoFocus

Dank

Antwort

3

Sie die Input innerhalb der passieren kann Select die autoFocus Prop und dies gilt für die Select.

<Select 
    native 
    value={value} 
    input={<Input id="integer" autoFocus={true} />} 
> 
    {possibleOptions.map((item, key) => { 
    return (<option value={item} key={key}>{item}</option>) 
    })} 
</Select> 

bearbeiten
Wenn ich die Antwort habe ich geschrieben das Teil verpasst haben, dass Sie die autoFocus nicht brauchen.

Wenn Sie einen Eingang innerhalb Ihrer Select verwenden, können Sie die inputRef Requisite verwenden, und dies wird den Unterstreichungseingang "angefügt" auf die Auswahl fokussieren.
Code example und Docs.

+0

Wie ich in meinem ersten Beitrag sagte. Ich brauche keinen AutoFocus, da AutoFocus nur beim Laden der Site funktioniert. Danach funktioniert autoFocus nicht mehr. Ich habe gelesen, dass ** inputRef ** sollte funktionieren. Zumindest ** this.formControll.focus() ** löst keinen Fehler mehr aus. focus() ist eine funktionierende Methode, aber es fokussiert immer noch nicht :-( – Paul

+0

Ja 'inputRef' wird keinen Fehler erzeugen, da es eine gültige Prop auf der' Input'-API ist. Obwohl ich denke, es ist nicht das eigentliche Element, das Sie wollen Um zu fokussieren, brauchen Sie die Auswahl, um fokussiert zu sein, aber sie haben keine Requisite für die Referenz der Auswahl angezeigt. –

+0

Sie sagen mir nur, dass es nicht funktioniert. Was funktioniert, um den Fokus eines Auswahlfeldes programmgesteuert festzulegen ? x) – Paul

0
<Select 
    ref="selectRef"         
    native 
    value={value} 
    input={<Input id="integer" />} 
> 
    {possibleOptions.map((item, key) => { 
     return (<option value={item} key={key}>{item}</option>) 
    })} 
</Select> 

Um den Zugang, ist

this.refs.selectRef.focus() 

verwenden hier ein Referenz github link

+0

Leider ist dies die Arbeit mit