English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الفصل، سنتعلم كيفية استخدام النماذج في React.
في المثال التالي، سنستخدم نموذج إعداد المدخل.value = {this.state.data}
. يمكن تحديث الحالة طالما تتغير قيمة المدخل. نحن نستخدمonChange
الحادث، وهو يقوم بمراقبة تغييرات المدخل ويقوم بتحديث الحالة بشكل مناسب.
import React from 'react'; class App extends React.Component { constructor(props) {}} super(props); this.state = { data: 'Initial data...' } this.updateState = this.updateState.bind(this); }; updateState(e) { this.setState({data: e.target.value}); } render() { return ( <div> <input type = "text" value = {this.state.data} onChange = {this.updateState} /> <h4>{this.state.data}</h4> </div> ); } } export default App;
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App.jsx'; ReactDOM.render(<App/>, document.getElementById('app'));
عندما يتم تغيير قيمة النص المدخل، يتم تحديث الحالة.
في المثال التالي، سنرى كيف يمكن استخدام النموذج في المكون الفرعي.onChange
الطريقة ستنشط تحديث الحالة، والذي سيتم إرساله إلى المدخل الفرعيvalue
ويعرضها على الشاشة. تم استخدام مثال مشابه في فصل الحدث. كلما احتجنا إلى تحديث حالة المكون الفرعي، يجب علينا تقديم معالج update (updateState
)الوظيفة كـprop (updateStateProp
)إرسالها.
import React from 'react'; class App extends React.Component { constructor(props) {}} super(props); this.state = { data: 'Initial data...' } this.updateState = this.updateState.bind(this); }; updateState(e) { this.setState({data: e.target.value}); } render() { return ( <div> <Content myDataProp = {this.state.data} updateStateProp = {this.updateState}</Content> </div> ); } } class Content extends React.Component { render() { return ( <div> <input type = "text" value = {this.props.myDataProp} onChange = {this.props.updateStateProp} /> <h3>{this.props.myDataProp}</h3> </div> ); } } export default App;
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App.jsx'; ReactDOM.render(<App/>, document.getElementById('app'));
سيكون هناك نتيجة مثل هذه.