nuke-normal-input
Version:
输入框
126 lines (117 loc) • 3.04 kB
Markdown
# Input demo
* order: 3
input events
---
```js
/** @jsx createElement */
import { createElement, Component, findDOMNode, render } from 'rax';
import View from 'nuke-view';
import Text from 'nuke-text';
import Input from 'nuke-normal-input';
import Button from 'nuke-button';
import Page from 'nuke-page';
let App = class NukeDemoIndex extends Component {
constructor() {
super();
this.state = {
input: '',
change: '',
returnKeyType: '',
returnValue: ''
};
}
input = e => {
let text = e.value;
this.setState({
input: text
});
};
textareaInputHandler = e => {
let text = e.value;
this.setState({
textareainput: text
});
};
change = text => {
this.setState({
change: text
});
};
onReturnHandler = e => {
this.setState({
returnKeyType: e.returnKeyType,
returnValue: e.value
});
console.log('in onReturnHandler');
};
blur = e => {
this.refs.myinput.wrappedInstance.blur();
};
render() {
return (
<Page title="Input">
<Page.Intro main="onChange 事件" />
<View style={styles.lineWithMargin}>
<Input
ref="myinput"
placeholder="输入完成点击按钮失去焦点"
onChange={this.change}
/>
</View>
<View style={[styles.lineWithMargin, styles.textLine]}>
<Text style={styles.text}>onChange:{this.state.change}</Text>
<Button style={styles.btn} block type="primary" onPress={this.blur}>
onChange 在失去焦点后触发
</Button>
</View>
<Page.Intro main="onInput 事件" />
<View style={styles.lineWithMargin}>
<Input onInput={this.input} />
</View>
<View style={[styles.lineWithMargin, styles.textLine]}>
<Text style={styles.text}>onInput:{this.state.input}</Text>
</View>
<Page.Intro main="onInput textarea事件" />
<View style={styles.lineWithMargin}>
<Input multiple onInput={this.textareaInputHandler} />
</View>
<View style={[styles.lineWithMargin, styles.textLine]}>
<Text style={styles.text}>onInput:{this.state.textareainput}</Text>
</View>
<Page.Intro main="return key" />
<View style={styles.lineWithMargin}>
<Input
placeholder="go"
id="sixth"
returnKeyType="go"
onReturn={this.onReturnHandler}
/>
</View>
<View style={[styles.lineWithMargin, styles.textLine]}>
<Text style={styles.text}>
return 类型: {this.state.returnKeyType} , 输入框值:{' '}
{this.state.returnValue}
</Text>
</View>
</Page>
);
}
};
const styles = {
lineWithMargin: {
marginLeft: 30,
marginRight: 30
},
textLine: {
marginTop: 20,
marginBottom: 20
},
text: {
fontSize: 26
},
btn: {
marginTop: 20
}
};
render(<App />);
```