State là nơi bắt nguồn của dữ liệu. Chúng ta phải luôn cố gắng làm cho trạng thái của mình đơn giản nhất có thể và giảm thiểu số lượng các thành phần trạng thái. Ví dụ:nếu chúng ta có mười thành phần cần dữ liệu từ trạng thái, chúng ta nên tạo một thành phần vùng chứa sẽ giữ trạng thái cho tất cả chúng.
Ví dụ 1
Tiêu đề nút thay đổi thành BẬT / TẮT khi người dùng nhấn vào nút.
Trạng thái được khởi tạo bên trong hàm tạo như được hiển thị bên dưới -
constructor(props) { super(props); this.state = { isToggle: true }; }
IsToggle là giá trị boolean được cung cấp cho trạng thái. Tiêu đề của nút được quyết định dựa trên thuộc tính isToggle. Nếu giá trị là true, tiêu đề của nút là BẬT, ngược lại là TẮT.
Khi nhấn nút, phương thức onpress được gọi sẽ gọi setState cập nhật giá trị isToggle như hình dưới đây -
onPress={() => { this.setState({ isToggle: !this.state.isToggle }); }}
Khi người dùng nhấp vào nút, sự kiện onPress sẽ được gọi và setState sẽ thay đổi trạng thái của thuộc tính isToggle.
App.js
import React, { Component } from "react"; import { Text, View, Button, Alert } from 'react-native'; class App extends Component { constructor(props) { super(props); this.state = { isToggle: true }; } render(props) { return ( <View style={{flex :1, justifyContent: 'center', margin: 15 }}> <Button onPress={() => { this.setState({ isToggle: !this.state.isToggle }); }} title={ this.state.isToggle ? 'ON' : "OFF" } color="green" /> </View> ); } } export default App;
Đầu ra
Nút sẽ chuyển đổi khi người dùng nhấn nút.
Ví dụ 2
Thay đổi văn bản khi người dùng nhấp vào văn bản đó.
Trong ví dụ dưới đây, trạng thái được hiển thị bên trong hàm tạo như sau -
constructor(props) { super(props); this.state = { myState: 'Welcome to Tutorialspoint' }; }
Trạng thái myState được hiển thị bên trong thành phần Văn bản như sau -
<Text onPress={this.changeState} style={{color:'red', fontSize:25}}>{this.state.myState} </Text>
Khi người dùng chạm hoặc nhấn vào văn bản, sự kiện onPress sẽ được kích hoạt và gọi phương thức this.changeState thay đổi văn bản bằng cách cập nhật trạng thái myState như được hiển thị bên dưới -
changeState = () => this.setState({myState: 'Hello World'})
import React, { Component } from "react"; import { Text, View, Button, Alert } from 'react-native'; class App extends Component { constructor(props) { super(props); this.state = { myState: 'Welcome to Tutorialspoint' }; } changeState = () => this.setState({myState: 'Hello World'}) render(props) { return ( <View style={{flex :1, justifyContent: 'center', margin: 15 }}> <View> <Text onPress={this.changeState} style={{color:'red', fontSize:25}}> {this.state.myState} </Text> </View> </View> ); } } export default App;
Đầu ra