<select> element that uses a callback function to pass its value to the parent component.selectedValue prop as the defaultValue of the <select> element to set its initial value..onChange event to fire the onValueChange callback and send the new value to the parent.Array.prototype.map() on the values array to create an <option> element for each passed value.values must be a 2-element array, where the first element is the value of the item and the second one is the displayed text for it.const Select = ({ values, onValueChange, selectedValue, ...rest }) => { return ( <select defaultValue={selectedValue} onChange={({ target: { value } }) => onValueChange(value)} {...rest} > {values.map(([value, text]) => ( <option key={value} value={value}> {text} </option> ))} </select> ); };
const choices = [ ['grapefruit', 'Grapefruit'], ['lime', 'Lime'], ['coconut', 'Coconut'], ['mango', 'Mango'], ]; ReactDOM.render( <Select values={choices} selectedValue="lime" onValueChange={val => console.log(val)} />, document.getElementById('root') );
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️