import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import * as serviceWorker from './serviceWorker';
class MyInput extends Component{
constructor(props){
super(props);
this.state={
text:'請輸入內容'
}
this.textFn=this.textFn.bind(this);
}
textFn(e){
this.setState({
text:e.target.value
})
}
render(){
return(
<div>
<input type="text" onChange={this.textFn} placeholder={this.state.text}/>
<p>{this.state.text}</p>
</div>
)
}
}
ReactDOM.render(
<div>
<MyInput />
</div>,
document.getElementById('example')
);
serviceWorker.unregister();

如何在子組件上使用表單
在父組件通過創建事件句柄 (handleChange) ,并作為 prop (updateStateProp) 傳遞到子組件上
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import * as serviceWorker from './serviceWorker';
class Parent extends Component{
constructor(props){
super(props);
this.state={
text:'請輸入內容'
}
this.textFn=this.textFn.bind(this);
}
textFn(e){
this.setState({
text:e.target.value
})
}
render(){
return(
<Child textFn={this.textFn} text={this.state.text} />
)
}
}
class Child extends Component{
render(){
return(
<div>
<input type="text" onChange={this.props.textFn} placeholder={this.props.text}/>
<p>{this.props.text}</p>
</div>
)
}
}
ReactDOM.render(
<div>
<Parent />
</div>,
document.getElementById('example')
);
serviceWorker.unregister();

在 React 中,不使用 selected 屬性,而在根 select 標簽上用 value 屬性來表示選中項
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import * as serviceWorker from './serviceWorker';
class Select extends Component{
constructor(props){
super(props);
this.state={
text:''
}
this.selectFn=this.selectFn.bind(this);
this.submitFn=this.submitFn.bind(this);
}
selectFn(e){
this.setState({
text:e.target.value
})
}
submitFn(e){
console.log('you choosed '+this.state.text);
e.preventDefault();
}
render(){
return(
<form onSubmit={this.submitFn}>
<select value=https://www.cnblogs.com/chenyingying0/p/{this.state.text} onChange={this.selectFn}>
<option vhttps://www.cnblogs.com/chenyingying0/p/alue="a">a</option>
<option value="https://www.cnblogs.com/chenyingying0/p/b">b</option>
<option value="https://www.cnblogs.com/chenyingying0/p/c">c</option>
</select>
<input type="submit" value="https://www.cnblogs.com/chenyingying0/p/提交" />
</form>
)
}
}
ReactDOM.render(
<div>
<Select />
</div>,
document.getElementById('example')
);
serviceWorker.unregister();

處理多個 input 元素時,可以給每個元素添加一個 name 屬性,來讓處理函式根據 event.target.name 的值來選擇做什么
import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import * as serviceWorker from './serviceWorker';
class Select extends Component{
constructor(props){
super(props);
this.state={
text:true,
num:4
}
this.changeFn=this.changeFn.bind(this);
}
changeFn(e){
const value=e.target.type==='checkbox' ? e.target.checked : e.target.value;
const name=e.target.name;
this.setState({
[name]:value
})
}
render(){
return(
<form>
<input type="checkbox" name="text" checked={this.state.text} onChange={this.changeFn} />
<br/>
<input type="number" name="num" value=https://www.cnblogs.com/chenyingying0/p/{this.state.num} onChange={this.changeFn} />
</form>
)
}
}
ReactDOM.render(
<div>
<Select />
</div>,
document.getElementById('example')
);
serviceWorker.unregister();

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/122037.html
標籤:JavaScript
上一篇:React AJAX 簡單演示
下一篇:React Refs 簡單演示
