AsyncStorage存儲類似Android中的sharedpreference存儲或者IOS中的NSDefaultUser不過ReactNative中的AsyncStorage只能存儲字符串類型
常用方法:
getItem(key:string,callback?:?(error:?Error,result:?string)=>void) 靜態方法,該通過key字段來進行查詢存儲的數據,把該結果值作為參數傳入第二個callback方法。如果發生錯誤,會把Error對象傳入callback方法。該方法最終返回一個Promise對象
setItem(key:string,value:string,callback?:?(error:?Error)=>void) 靜態方法,該根據key字段設置value內容,完成之后進行回調callback方法。如果發生錯誤會把Error對象傳入callback方法中。該方法返回一個Promise對象。
removeItem(key:string,callback?:?(error:?Error)=>void) 靜態方法,根據key進行刪除值,成功之后進行回調callback方法。如果發生錯誤會把Error對象傳入callback方法中。該方法返回一個Promise對象。
/** * Created by Administrator on 2016/9/12. */import React, {Component} from 'react';import { StyleSheet, View, Text, AsyncStorage} from 'react-native';var keyName = 'name';var keyValue = '張三';class AsyncStorageG extends Component { constructor(props) { super(props); this.state = { result: '初始值' }; } render() { return ( <View style={{flex: 1}}> <Text style={styles.text} onPress={this.save.bind(this)}>存</Text> <Text style={styles.text} onPress={()=>this.load()}>取</Text> <Text style={styles.text} onPress={()=> this.remove()}>刪除</Text> <Text style={styles.text} >存儲的內容是------------------{this.state.result}</Text> </View> ) } /** * 存數據 */ save() { //this 是指當前對象 this2 = this; AsyncStorage.setItem(keyName, keyValue, function (error) { if (error) { alert('存儲失敗'); } else { this2.setState( { result: '數據已經保存,取出來看看吧!!!' } ) } }) } /** * 取數據 */ load() { //this 是指當前對象 this2 = this; AsyncStorage.getItem(keyName, function (error, result) { if (!error) { this2.setState( { result: result === null ? '數據已經刪除,現在取的是空值' : result } ) } }) } /** * 兩個參數: * 一個是要刪除指定key內容 * 第二個是一個回調函數 */ remove() { //this 是指當前對象 this2 = this; AsyncStorage.removeItem(keyName, function (error) { if (!error) { this2.setState( { result: '數據已經刪除' } ) } }) }}const styles = StyleSheet.create({ text: { fontSize: 20 }});//es6寫法export default AsyncStorageG;感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答