I am trying to restrict my key input in the text field to numbers or backspace or space so I am checking before I set state and preventing default behavior of event in other cases but I am not able to locate event.which property of event or keyCode for that matter.
I tried event.persist() to see but still the same there is no property by the name of which in event.
There is a which in nativeEvent of event but it is always 0.
Here is the component that is there in my app.js I am using textfield of material-ui instead of normal input.
MobileNumber.tsx:
import React from 'react';
import { TextField } from '@material-ui/core';
export interface MobileNumberProps {
}
export interface MobileNumberState {
value: any
}
class MobileNumber extends React.Component<MobileNumberProps, MobileNumberState> {
state = {
value: 0,
}
handleChange = (value: any) => {
this.setState({ value: value })
}
render() {
return (
<TextField
type="number"
onChange={(event: any) => {
event.persist();
console.log('event is ', event);
if (event.which != 8 && event.which != 0 && (event.which < 48 || event.which > 57)) {
console.log('stopped')
event.preventDefault();
}
else {
console.log('event which is ', event.which);
console.log('allowed');
let value = event.target.value
this.handleChange(value);
}
}}
value={this.state.value}
/>
);
}
}
export default MobileNumber;