Die Liste der Eigenschaften im Dokument enthält keine Informationen onClick
( http://www.material-ui.com/#/components/icon-button ).
Woher weiß ich, dass ich onClick für den Klick-Handler verwenden muss?
Die Liste der Eigenschaften im Dokument enthält keine Informationen onClick
( http://www.material-ui.com/#/components/icon-button ).
Woher weiß ich, dass ich onClick für den Klick-Handler verwenden muss?
refs
war es sehr schwierig , so etwas zu verwenden, weil man ungefähr 15 Eigenschaften in einer Hierarchie durchlaufen musste, um ihre zu finden Komponenten und ich brachen immer wieder die Kapselung von Komponenten. Das Problem damit wird refs
für Dom-Elemente von Drittanbietern empfohlen. Denken Sie daran, dass dies vor über 3 Jahren war, also hätte sich viel ändern können.
Antworten:
In der Material-UI-Dokumentation sind die Standardereignisse React (nativer Browser) nicht aufgeführt:
https://facebook.github.io/react/docs/events.html#mouse-events
Dies liegt daran, dass Sie voraussichtlich bereits über die verfügbaren nativen Ereignisse informiert sind. Zum Beispiel können Sie auch verwenden onWheel
. Es wäre eine lange und redundante Liste, wenn alle nativen Ereignisse enthalten wären.
Wie Kouak erklärt , werden andere Requisiten (wie z. B. onClick
) an eine relevante untergeordnete Komponente weitergegeben.
Zufälliges Beispiel:
<Button color="primary" onClick={() => { console.log('onClick'); }}>
Primary
</Button>
Sie können einen Wrapper über das hinzufügen, um das <IconButton/>
zu erhaltenonClick
Ereignis abzurufen.
Beispiel
render() {
return <div class="font-icon-wrapper" onClick={this.fontIconClick}>
<IconButton iconClassName="muidocs-icon-custom-github" />
</div>
}
Das sollte auf jeden Fall funktionieren ...
onClick
Fügen Sie einfach die Requisiten hinzu, in die Sie weitergeben <IconButton />
.
Requisiten, die nicht im Dokument aufgeführt sind, werden an ihre interne <EnhancedButton />
Komponente weitergegeben, die problemlos onClick
funktioniert.
Siehe hier: https://github.com/callemall/material-ui/blob/master/src/IconButton/IconButton.js#L241
Denken Sie daran, dass Sie onClick in jeder einzelnen Komponente verwenden können, die über einen DOM-Renderer verfügt, da es sich um ein natives React-Ereignis handelt (es muss keine Schaltflächenkomponente sein).
Beispiel 1:
<Paper
className={classes.paper}
onClick={() => {
alert("✔️ This works on every component!");
}}
>
Click me!
</Paper>
Beispiel 2:
⬇ Online damit spielen ⬇
Alle Komponenten akzeptieren einen onClick
Handler, der auf das Stamm-DOM-Element angewendet wird.
<Button onClick={() => { alert('clicked') }}>Click me</Button>
Beachten Sie, dass in der Dokumentation vermieden wird, native Requisiten (es gibt viele) im API-Abschnitt der Komponenten zu erwähnen. API für Button