state: 是RN 专门用来标识是否重新渲染,通过属性的值来更新数据,React 内部会监听 state 的变化,一旦发生变化就会主动触发组件的 render() 方法来更新 Dom 结构,另外state是组件私有的,是没有办法通过其他组件传递过来的。
import React, {Component} from 'react';
import { Text, View } from 'react-native';export default class App extends Component {state = {myState: 'This is a text component, created using state data. It will change or updated on clicking it.'}updateState = () => this.setState({myState: 'The state is updated'})render() {return (<View><Text onPress={this.updateState}> {this.state.myState} </Text></View>);}
}
this.setState({buttonText: value,selectedIndex: idx,});
setState() 方法会把对组件 state 的改变加入到队列中,并且告诉 React 这个组件及其子组件需要重新渲染,React 并不能保证 setState() 一被调用 state 就能更新。所以,如果在调用 setState() 之后,马上就读取 this.state 的值的话,可能会出现误差,所以setState(updater, callback) 方法的第二个参数 callback 是一个可选参数,暂时未找到使用实例。
参考
ReactNative从零到完整项目-state使用详解 - 掘金
React-Native中的FlatList学习记录(二)之单个item刷新_flatlist 局部刷新_隔壁老何的博客-CSDN博客