الواجهة settings في React Native

من موسوعة حسوب

تعمل الواجهة Settings كمُغلِّف للواجهة NSUserDefaults، وهي مخزنٌ دائمٌ لقيمة المفتاح (key-value) المتوفّر على منصّة iOS فقط.

مثال

إليك المثال التالي (تجربة حية):

import React, { useState } from "react";
import { Button, Settings, StyleSheet, Text, View } from "react-native";

const App = () => {
  const [data, setData] = useState(Settings.get("data"));

  const storeData = data => {
    Settings.set(data);
    setData(Settings.get("data"));
  };

  return (
    <View style={styles.container}>
      <Text>Stored value:</Text>
      <Text style={styles.value}>{data}</Text>
      <Button
        onPress={() => storeData({ data: "React" })}
        title="Store 'React'"
      />
      <Button
        onPress={() => storeData({ data: "Native" })}
        title="Store 'Native'"
      />
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: "center",
    alignItems: "center"
  },
  value: {
    fontSize: 24,
    marginVertical: 12
  }
});

export default App;

التوابع

clearWatch()‎

static clearWatch(watchId: number)

يُعيد هذا التابع الرقم watchId عندما يهيّأ الاشتراك اعتياديًّا.

get()‎

static get(key: string): mixed

للحصول على القيمة الحاليّة للمفتاح المعطى key في NSUserDefaults.

set()‎

static set(settings: object)

لوضع قيمةٍ، أو أكثر في NSUserDefaults.

watchKeys()‎

static watchKeys(keys: string | array<string>, callback: function): number

للإعلام عن الاشتراك، وذلك عند تغيُّر قيمة أيّ مفتاحٍ محدّد بالمعامل key في NSUserDefaults. ويُعيد العدد watchId الذي يُستخدم مع الدّالة ‎‏‪.clearWatch() لإلغاء الاشتراك

ملاحظة: إنّ التابع watchKeys()‎ يتجاهل في تصميمه طلبات set()‎ الداخلية، ويستجيب للتّغيرات التي تنشأ خارج شفرة React Native فقط.

مصادر