我们可以使用InputLabelProps属性来启用收缩选项。
const CustomTextField = ({
label,
value,
maxLength,
required,
disabled,
handleChange,
handleClear,
error,
helpertext,
shrink
}) => {
return (
<TextField
label={label}
fullWidth
size='small'
variant='standard'
value={value}
inputProps={{ maxLength: (maxLength && parseInt(maxLength)) || 99}}
InputLabelProps={{ shrink: shrink, style: { fontSize: 18 } }} // we can mention this way to shrink the label
required={required}
onChange={handleChange}
InputProps={{
endAdornment: (
(value.length > 0 && !disabled) ? <IconButton onClick={handleClear}>
<ClearOutlinedIcon/>
</IconButton> : ''
),
readOnly: disabled
}}
error={error}
helperText={helpertext}
/>
)
}
CustomTextField.propTypes = {
disabled: PropTypes.bool.isRequired,
error: PropTypes.bool.isRequired,
handleChange: PropTypes.func.isRequired,
handleClear: PropTypes.func.isRequired,
helpertext: PropTypes.string.isRequired,
label: PropTypes.string.isRequired,
maxLength: PropTypes.string,
required: PropTypes.bool.isRequired,
value: PropTypes.string.isRequired,
}