Вот код из материала настроенного компонента CostumINput
import Input from "@material-ui/core/Input";
function CustomInput({ ...props }) {
const {
classes,
formControlProps,
labelText,
id,
labelProps,
inputProps,
error,
white,
inputRootCustomClasses,
success
} = props;
const labelClasses = classNames({
[" " + classes.labelRootError]: error,
[" " + classes.labelRootSuccess]: success && !error
});
const underlineClasses = classNames({
[classes.underlineError]: error,
[classes.underlineSuccess]: success && !error,
[classes.underline]: true,
[classes.whiteUnderline]: white
});
const marginTop = classNames({
[inputRootCustomClasses]: inputRootCustomClasses !== undefined
});
const inputClasses = classNames({
[classes.input]: true,
[classes.whiteInput]: white
});
var formControlClasses;
if (formControlProps !== undefined) {
formControlClasses = classNames(
formControlProps.className,
classes.formControl
);
} else {
formControlClasses = classes.formControl;
}
return (
<FormControl {...formControlProps} className={formControlClasses}>
{labelText !== undefined ? (
<InputLabel
className={classes.labelRoot + " " + labelClasses}
htmlFor={id}
{...labelProps}
>
{labelText}
</InputLabel>
) : null}
<Input
classes={{
input: inputClasses,
root: marginTop,
disabled: classes.disabled,
underline: underlineClasses
}}
id={id}
{...inputProps}
/>
</FormControl>
);
}
CustomInput.propTypes = {
classes: PropTypes.object.isRequired,
labelText: PropTypes.node,
labelProps: PropTypes.object,
id: PropTypes.string,
inputProps: PropTypes.object,
formControlProps: PropTypes.object,
inputRootCustomClasses: PropTypes.string,
error: PropTypes.bool,
success: PropTypes.bool,
white: PropTypes.bool
};
export default withStyles(customInputStyle)(CustomInput);
Я хочу записать значения, которые пользователь вводит в этот ввод, когда я вызываю их в моем главном приложении. Что бы это не работало, как в текстовом поле, есть идеи. Почему?
код моего основного приложения:
class myapp extends React.Component {
state={
name:"",
value:"",
msg:""
}
handleChange = (event) => {
this.setState({
value: event.target.value,
});
};
showinfo = () =>{
alert(this.state.value)
}
render() {
const { classes } = this.props;
return (
<div className={classes.section}>
<CustomInput
labelText="Your Name"
value={this.state.value}
onChange={this.handleChange}
id="filled-value-input"
formControlProps={{
fullWidth: true
}}
/>
<button onClick={this.showinfo}>send</button>
</div>
Предупреждение возвращает пустое сообщение, я попытался вручную установить значение состояния в строку, и это прекрасно работает, есть идеи, как это сделать?