score:3

Accepted answer

i would do smt like this. react is really functional:

import react from "react";

import select from "@material-ui/core/select";

export default function app() {
  
  const getdisabled = val => {
    if (val) return { disabled: true };
    return {};
  };
  
  return (
    <div classname="app">
      <select
        // you can pass under the readonly prop
        {...getdisabled(true)}
        // other props here
      />
    </div>
  );
}

so, with your example:

export class rowselectcomponent extends react.component {

   getdisabled = val => {
     if (val) return { disabled: true };
     return {};
   }
    render() {
        const {details, classes, name, displayname, values, updatescenariodetailsfield, readonly=false} = this.props;
        return <formrow>
            <formlabel>{displayname}</formlabel>
            <formcontent>
                <select
                    value={details && details[name]}
                    onchange={(event) => {
                        updatescenariodetailsfield(name, event.target.value);
                    }}
                    {...this.getdisabled(readonly)}
                    classname={classes.input}
                >   
                    {values && values.map((value, index) =>
                        <menuitem key={index} value={value}>{value}</menuitem>
                    )}               
                </select></formcontent>
        </formrow>;
    }
}

Related Query

More Query from same tag