الفرق بين المراجعتين لصفحة: «ReactNative/settings»

من موسوعة حسوب
لا ملخص تعديل
لا ملخص تعديل
سطر 67: سطر 67:
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
static watchKeys(keys: string | array<string>, callback: function): number
static watchKeys(keys: string | array<string>, callback: function): number
</syntaxhighlight>للإعلام عن الاشتراك وذلك عند تغيُّر قيمة أيّ مفتاحٍ محدّد بالمعامل <code>key</code> في <code>NSUserDefaults</code>. ويُعيد الرقم <code>watchId</code> الذي يُستخدم مع الدّالة <code>clearWatch()</code> لإلغاء الاشتراك.
</syntaxhighlight>للإعلام عن الاشتراك وذلك عند تغيُّر قيمة أيّ مفتاحٍ محدّد بالمعامل <code>key</code> في <code>NSUserDefaults</code>. ويُعيد الرقم <code>watchId</code> الذي يُستخدم مع الدّالة <code>clearWatch()</code> لإلغاء الاشتراك.<blockquote>'''ملاحظة:''' إن التابع <code>watchKeys()‎</code> يتجاهل في تصميمه طلبات <code>set()‎</code> الداخلية، ويستجيب للتّغيرات التي تنشأ خارج شفرة React Native فقط.</blockquote>
 
'''ملاحظة:''' إن التابع <code>watchKeys()‎</code> يتجاهل في تصميمه طلبات <code>set()‎</code> الداخلية، ويستجيب  للتّغيرات التي تنشأ خارج شفرة React Native فقط.<blockquote>'''ملاحظة:''' إن التابع <code>watchKeys()‎</code> يتجاهل في تصميمه طلبات <code>set()‎</code> الداخلية، ويستجيب للتّغيرات التي تنشأ خارج شفرة React Native فقط.</blockquote>


== مصادر ==
== مصادر ==


* [https://facebook.github.io/react-native/docs/settings صفحة Settings في توثيق React Native الرسميّ]
* [https://facebook.github.io/react-native/docs/settings صفحة Settings في توثيق React Native الرسميّ]

مراجعة 04:48، 6 يناير 2021

Settings

تعمل 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 فقط.

مصادر