在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ HTML/ 異步存儲
JavaScript 環(huán)境
計時器
Native 模塊(iOS)
入門
在設(shè)備上運行
ProgressBarAndroid
iOS 應(yīng)用程序狀態(tài)
網(wǎng)絡(luò)
ToolbarAndroid
測試
輔助功能
網(wǎng)絡(luò)信息
DrawerLayoutAndroid
樣式表
手勢應(yīng)答系統(tǒng)
與現(xiàn)有的應(yīng)用程序集成
樣式
教程
不透明觸摸
調(diào)試 React Native 應(yīng)用
iOS 活動指示器
導(dǎo)航器
無反饋觸摸
動畫布局
Web 視圖
鏈接庫
像素比率
React Native 官網(wǎng)首頁介紹
iOS 導(dǎo)航器
交互管理器
全景響應(yīng)器
SwitchAndroid
TabBarIOS.Item
相機滾動
ToastAndroid
iOS 震動
BackAndroid
文本輸入
iOS 選擇器
應(yīng)用程序注冊表
iOS 開關(guān)
滾動視圖
iOS 日期選擇器
iOS 警告
iOS 鏈接
視圖
圖片
列表視圖
異步存儲
Native UI 組件(Android)
iOS 滑塊
Map 視圖
高亮觸摸
iOS 推送通知
文本
定位
iOS 狀態(tài)欄
Native UI 組件(iOS)
在設(shè)備上運行(Android)
Native 模塊(Android)
Flexbox
已知 Issues
iOS 選項卡
安裝 Android 運行環(huán)境

異步存儲

異步存儲是一個簡單的、異步的、持久的、全局的、鍵-值存儲系統(tǒng)。它應(yīng)該會代替本地存儲被使用。

由于異步存儲是全局性的,建議您在異步存儲之上使用抽象體,而不是對任何輕微用法直接使用異步存儲。

在本地 iOS 實現(xiàn)上 JS 代碼是一個簡單的外觀模式,用來提供一個清晰的 JS API,真正的錯誤對象,和簡單的非多元化功能。每個方法返回一個 Promise 對象。

方法

static **getItem**(key: string, callback: (error: ?Error, result: ?string) => void) 

如果有任何一個錯誤,獲取 key 并傳遞 callback 的結(jié)果,返回一個 Promise 對象。

static **setItem**(key: string, value: string, callback: ?(error: ?Error) => void)

如果有任何一個錯誤,獲取 key 并在結(jié)束時調(diào)用 callback 函數(shù),返回一個 Promise 對象。

static **removeItem**(key: string, callback: ?(error: ?Error) => void)

返回一個 Promise 對象。

static **mergeItem**(key: string, value: string, callback: ?(error: ?Error) => void)

將現(xiàn)有值與輸入值進(jìn)行合并,假設(shè)它們是 stringified json,返回一個 Promise 對象。

所有本地實現(xiàn)不支持。

static **clear**(callback: ?(error: ?Error) => void)

為所有客戶、函數(shù)庫等清除所有的異步存儲。你可能不想調(diào)用這個-使用 removeItem 或者 multiRemove 來清除只屬于你的鍵值。返回一個 Promise 對象。

static **getAllKeys**(callback: (error: ?Error) => void)

為調(diào)用者、函數(shù)庫等獲取系統(tǒng)已知的所有鍵值。返回一個 Promise 對象。

static **multiGet**(keys: Array<string>, callback: (errors: ?Array<Error>, result: ?Array<Array<string>>) => void)

multiGet利用一個鍵值對的數(shù)組調(diào)用回調(diào)函數(shù)來獲取multiSet的輸入格式。返回一個 `Promise` 對象。

multiGet(['k1', 'k2'], cb) -> cb([['k1', 'val1'], ['k2', 'val2']])

static **multiSet**(keyValuePairs: Array<Array<string>>, callback: ?(errors: ?Array<Error>) => void)

multiSet 和 multiMerge 利用鍵值對的數(shù)組匹配multiGet的輸出。返回一個 Promise 對象。例如,

multiSet([['k1', 'val1'], ['k2', 'val2']], cb);

static **multiRemove**(keys: Array<string>, callback: ?(errors: ?Array<Error>) => void) 

刪除鍵值數(shù)組中所有的鍵值。返回一個 Promise 對象。

static **multiMerge**(keyValuePairs: Array<Array<string>>, callback: ?(errors: ?Array<Error>) => void)

將現(xiàn)有值與輸入值進(jìn)行合并,假設(shè)它們是 stringified json,返回一個 Promise 對象。

所有本地實現(xiàn)不支持。

例子

dit on GitHub

    'use strict';
    var React = require('react-native');
    var {
      AsyncStorage,
      PickerIOS,
      Text,
      View
    } = React;
    var PickerItemIOS = PickerIOS.Item;
    var STORAGE_KEY = '@AsyncStorageExample:key';
    var COLORS = ['red', 'orange', 'yellow', 'green', 'blue'];
    var BasicStorageExample = React.createClass({
      componentDidMount() {
        AsyncStorage.getItem(STORAGE_KEY)
          .then((value) => {
            if (value !== null){
              this.setState({selectedValue: value});
              this._appendMessage('Recovered selection from disk: ' + value);
            } else {
              this._appendMessage('Initialized with no selection on disk.');
            }
          })
          .catch((error) => this._appendMessage('AsyncStorage error: ' + error.message))
          .done();
      },
      getInitialState() {
        return {
          selectedValue: COLORS[0],
          messages: [],
        };
      },
      render() {
        var color = this.state.selectedValue;
        return (
          <View>
            <PickerIOS
              selectedValue={color}
              onValueChange={this._onValueChange}>
              {COLORS.map((value) => (
                <PickerItemIOS
                  key={value}
                  value={value}
                  label={value}
                />
              ))}
            </PickerIOS>
            <Text>
              {'Selected: '}
              <Text style={{color}}>
                {this.state.selectedValue}
              </Text>
            </Text>
            <Text>{' '}</Text>
            <Text onPress={this._removeStorage}>
              Press here to remove from storage.
            </Text>
            <Text>{' '}</Text>
            <Text>Messages:</Text>
            {this.state.messages.map((m) => <Text>{m}</Text>)}
          </View>
        );
      },
      _onValueChange(selectedValue) {
        this.setState({selectedValue});
        AsyncStorage.setItem(STORAGE_KEY, selectedValue)
          .then(() => this._appendMessage('Saved selection to disk: ' + selectedValue))
          .catch((error) => this._appendMessage('AsyncStorage error: ' + error.message))
          .done();
      },
      _removeStorage() {
        AsyncStorage.removeItem(STORAGE_KEY)
          .then(() => this._appendMessage('Selection removed from disk.'))
          .catch((error) => { this._appendMessage('AsyncStorage error: ' + error.message) })
          .done();
      },
      _appendMessage(message) {
        this.setState({messages: this.state.messages.concat(message)});
      },
    });
    exports.title = 'AsyncStorage';
    exports.description = 'Asynchronous local disk storage.';
    exports.examples = [
      {
        title: 'Basics - getItem, setItem, removeItem',
        render(): ReactElement { return <BasicStorageExample />; }
      },
    ];
上一篇:高亮觸摸下一篇:iOS 警告