1.通過 onChange -- e.target.value
class App extends Component { state = { username: '張三' }; // 用戶名 getUserName(e){ console.log(e.target.value); this.setState({ username: e.target.value }); console.log(this.state.username); // setState為異步,存在延遲 } render() { return ( <div> <input type="text" onChange={this.getUserName.bind(this)} /> </div> ); } }
2.通過 ref -- this.refs.name
/** * ref 用於對DOM進行操作,不建議頻繁使用 */ import React, { Component } from 'react'; // 創建類 class HelloMessage extends Component { handleClick(){ this.refs.myText.focus(); console.log(this.refs.myText.value); } render(){ return ( <div> <input type="text" ref="myText" /> <button onClick={() => this.handleClick()}>click</button> </div> ); } } // 通過繼承的方式創建類 class App extends Component { render() { return ( <HelloMessage /> ); } } export default App;
或
/** * ref 回調 */ import React, { Component } from 'react'; // 創建類 class HelloMessage extends Component { handleClick(){ this.myText.focus(); console.log(this.myText.value); } render(){ return ( <div> <input type="text" ref={(dom) => {this.myText = dom}} /> <button onClick={() => this.handleClick()}>click</button> </div> ); } } // 通過繼承的方式創建類 class App extends Component { render() { return ( <HelloMessage /> ); } } export default App;
.