Un composant qui affiche un ensemble de boutons, dont un seul peut être actif à la fois. Peut être utilisé en « mode contrôlé » (en définissant l'accessoire value
) ou non contrôlé.
Usage
import { SegmentedControl } from 'nr1'
Exemples
Basique
<SegmentedControl onChange={(evt, value) => console.log(evt, value)}> <SegmentedControlItem value="one" label="One" /> <SegmentedControlItem value="two" label="Two" /> <SegmentedControlItem disabled value="three" label="Three" /> <SegmentedControlItem value="four" label="Four" /></SegmentedControl>
Avec quelques indices
<SegmentedControl onChange={(evt, value) => console.log(evt, value)}> <SegmentedControlItem value="one" label="One" /> <SegmentedControlItem value="two" label="Two" /> <SegmentedControlItem hint="The third item" disabled value="three" label="Three" /> <SegmentedControlItem hint="The fourth item" value="four" label="Four" /></SegmentedControl>
Contrôlé
class TestComponent extends React.Component { constructor(props) { super(props);
this.state = { value: 'one', }; }
render() { return ( <SegmentedControl value={this.state.value} onChange={(evt, value) => this.setState({ value })} > <SegmentedControlItem value="one" label="One" /> <SegmentedControlItem value="two" label="Two" /> <SegmentedControlItem disabled value="three" label="Three" /> <SegmentedControlItem value="four" label="Four" /> </SegmentedControl> ); }}
Avec des icônes
class TestComponent extends React.Component { constructor(props) { super(props);
this.state = { value: 'one', }; }
render() { return ( <SegmentedControl value={this.state.value} onChange={(evt, value) => this.setState({ value })} > <SegmentedControlItem label="One" value="one" iconType={ SegmentedControlItem.ICON_TYPE.HARDWARE_AND_SOFTWARE__SOFTWARE__CODE } /> <SegmentedControlItem label="Two" value="two" iconType={ SegmentedControlItem.ICON_TYPE.INTERFACE__OPERATIONS__FILTER } /> <SegmentedControlItem label="Three" value="three" iconType={SegmentedControlItem.ICON_TYPE.INTERFACE__SIGN__NUMBER} /> </SegmentedControl> ); }}
Icônes uniquement avec quelques indices
class TestComponent extends React.Component { constructor(props) { super(props);
this.state = { value: 'one', }; }
render() { return ( <SegmentedControl type={SegmentedControl.TYPE.ICONS_ONLY} value={this.state.value} onChange={(evt, value) => this.setState({ value })} > <SegmentedControlItem label="One" value="one" iconType={ SegmentedControlItem.ICON_TYPE.HARDWARE_AND_SOFTWARE__SOFTWARE__CODE } /> <SegmentedControlItem label="Two" value="two" iconType={ SegmentedControlItem.ICON_TYPE.INTERFACE__OPERATIONS__FILTER } hint="The second item." /> <SegmentedControlItem label="Three" value="three" iconType={SegmentedControlItem.ICON_TYPE.INTERFACE__SIGN__NUMBER} hint="The third item." /> </SegmentedControl> ); }}
Accessoires
chaîne | Fournissez une étiquette descriptive pour ce contrôle, par exemple "Sélecteur de thème". |
OBLIGATOIREnœud | Un éventail de 5 |
chaîne | Ajoute les noms de classe au composant. Doit être utilisé uniquement à des fins de positionnement et d'espacement. |
fonction | Appelé chaque fois qu'un function ( |
énumération[] | Propriété d'espacement. L'espacement est défini comme un uplet de zéro à quatre valeurs, qui suivent les mêmes conventions que les propriétés CSS comme <Array of |
objet | Style en ligne pour un style personnalisé. Doit être utilisé uniquement à des fins de positionnement et d'espacement. |
chaîne | Ajoute un attribut |
énum. | Définissez ceci sur <One of |
n'importe lequel | Définissez l'option actuellement sélectionnée dans le contrôle en mettant à jour cet accessoire. |