A numeric keyboard component.
- npm install react-native-keyboard --save
- import Keyboard from 'react-native-keyboard'
'use strict';
import React, {View, Text, StyleSheet} from 'react-native';
import Keyboard from 'react-native-keyboard';
let model = {
_keys: [],
_listeners: [],
addKey(key) {
this._keys.push(key);
this._notify();
},
delKey() {
this._keys.pop();
this._notify();
},
clearAll() {
this._keys = [];
this._notify();
},
getKeys() {
return this._keys;
},
onChange(listener) {
if (typeof listener === 'function') {
this._listeners.push(listener);
}
},
_notify() {
this._listeners.forEach((listner) => {
listner(this);
});
}
};
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
text: ''
};
}
componentDidMount() {
model.onChange((model) => {
this.setState({text: model.getKeys().join('')});
});
}
_handleClear() {
model.clearAll();
}
_handleDelete() {
model.delKey();
}
_handleKeyPress(key) {
model.addKey(key);
}
render() {
return (
<View style={{flex: 1}}>
<View style={{flex: 1}}>
<Text style={styles.text}>{this.state.text}</Text>
</View>
<Keyboard
keyboardType="decimal-pad"
onClear={this._handleClear.bind(this)}
onDelete={this._handleDelete.bind(this)}
onKeyPress={this._handleKeyPress.bind(this)}
/>
</View>
);
}
}
Type: enum('number-pad', 'decimal-pad');
Type: func
Type: func
Type: func