الفرق بين المراجعتين ل"ReactNative/datepickerios"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (مراجعة)
ط (مراجعة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:DatePickerIOS في React Native}}</noinclude>
+
<noinclude>{{DISPLAYTITLE:المكون DatePickerIOS في React Native}}</noinclude>
<blockquote>'''مهملة:''' يمكنك استخدام <code>[https://github.com/react-native-community/react-native-datetimepicker react-native-datetimepicker]</code> بدلًا منها.</blockquote>تُستخدم <code>DatePickerIOS</code> لإظهار مُنتقي الوقت، والتاريخ (date/time picker) على منصة iOS، وهو مكوّنٌ مُتحَكم به، لذا حتّى يُحدَّث هذا المكوّن يجب الرّبط مع ردّ النّداء <code>onDateChange</code>، وتحديث الخاصيّة <code>date</code>، وإلّا فسيلغى تحديث المستخدم على الفور وستُؤخذ الخاصيّة <code>props.date</code> كمصدرٍ موثوقٍ للوقت والتاريخ.   
+
<blockquote>'''مهمل:''' يمكنك استخدام <code>[https://github.com/react-native-community/react-native-datetimepicker react-native-datetimepicker]</code> بدلًا منه.</blockquote>يستخدم المكون <code>DatePickerIOS</code> لإظهار مُنتقي الوقت، والتاريخ (date/time picker) على منصة iOS، وهو مكوّنٌ مُتحَكم به، لذا حتّى يُحدَّث هذا المكوّن يجب الرّبط مع ردّ النّداء <code>onDateChange</code>، وتحديث الخاصيّة <code>date</code>، وإلّا فسيلغى تحديث المستخدم على الفور وستُؤخذ الخاصيّة <code>props.date</code> كمصدرٍ موثوقٍ للوقت والتاريخ.   
 
__toc__
 
__toc__
 
== مثال ==
 
== مثال ==
  
* مثال لمكوِّن الدالّة (Function Component)
+
* [https://snack.expo.dev/@hsoubwiki/datepickerios-function-component مثال لمكون دالة (Function Component)]
 
<syntaxhighlight lang="javascript">
 
<syntaxhighlight lang="javascript">
 
import React, {useState} from 'react';
 
import React, {useState} from 'react';
سطر 33: سطر 33:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
* مثال لمكوِّن الصّنف (Class Component)
+
* [https://snack.expo.dev/@hsoubwiki/datepickerios-class-component مثال لمكوِّن الصّنف (Class Component)]
 
<syntaxhighlight lang="javascript">
 
<syntaxhighlight lang="javascript">
 
import React, {Component} from 'react';
 
import React, {Component} from 'react';
سطر 71: سطر 71:
  
 
== الخاصيات ==
 
== الخاصيات ==
ترث خاصّيّات المكوّن [[ReactNative/view#props|view]]  
+
ترث خاصّيّات المكوّن [[ReactNative/view#props|<code>View</code>]].
  
 
=== <code>date</code> ===
 
=== <code>date</code> ===
سطر 80: سطر 80:
 
|-
 
|-
 
|تاريخ (Date)
 
|تاريخ (Date)
|لا
+
|نعم
 
|}
 
|}
  
سطر 127: سطر 127:
  
 
=== <code>minutInterval</code> ===
 
=== <code>minutInterval</code> ===
تُحدد الفاصل الزمني لاختيار الدقائق.
+
تُحدد القيمة الفاصلة لاختيار الدقائق.
 
{| class="wikitable"
 
{| class="wikitable"
 
!النوع
 
!النوع
 
!مطلوب
 
!مطلوب
 
|-
 
|-
|‎‏‪<code>(1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30)</code>
+
|‎‏تعداد ‪<code>(1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30)</code>
 
|لا
 
|لا
 
|}
 
|}
سطر 147: سطر 147:
 
|لا
 
|لا
 
|}
 
|}
ويبين المثال التّالي منتقي الوقت والتّاريخ عند ضبط <code>mode</code> على القيم <code>date</code>، و<code>time</code>، و<code>datetime</code>:
+
ويبين المثال التّالي منتقي الوقت والتّاريخ عند ضبط <code>mode</code> على القيم <code>date</code>، و<code>time</code>، و<code>datetime</code> من اليسار إلى اليمين:
 
[[ملف:003mode.png|مركز|تصغير|677x677بك]]
 
[[ملف:003mode.png|مركز|تصغير|677x677بك]]
  

مراجعة 08:44، 29 سبتمبر 2021

مهمل: يمكنك استخدام react-native-datetimepicker بدلًا منه.

يستخدم المكون DatePickerIOS لإظهار مُنتقي الوقت، والتاريخ (date/time picker) على منصة iOS، وهو مكوّنٌ مُتحَكم به، لذا حتّى يُحدَّث هذا المكوّن يجب الرّبط مع ردّ النّداء onDateChange، وتحديث الخاصيّة date، وإلّا فسيلغى تحديث المستخدم على الفور وستُؤخذ الخاصيّة props.date كمصدرٍ موثوقٍ للوقت والتاريخ.

مثال

import React, {useState} from 'react';
import {DatePickerIOS, View, StyleSheet} from 'react-native';

const App = () => {

  const [chosenDate, setChosenDate] = useState(new Date());

  return (
    <View style={styles.container}>
      <DatePickerIOS
        date={chosenDate}
        onDateChange={setChosenDate}
      />
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
  },
});

export default App;
import React, {Component} from 'react';
import {DatePickerIOS, View, StyleSheet} from 'react-native';

export default class App extends Component {
  constructor(props) {
    super(props);
    this.state = {chosenDate: new Date()};

    this.setDate = this.setDate.bind(this);
  }

  setDate(newDate) {
    this.setState({chosenDate: newDate});
  }

  render() {
    return (
      <View style={styles.container}>
        <DatePickerIOS
          date={this.state.chosenDate}
          onDateChange={this.setDate}
        />
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
  },
});

الخاصيات

ترث خاصّيّات المكوّن View.

date

لاختيار التّاريخ الحالي.

النوع مطلوب
تاريخ (Date) نعم

onChange

هي خاصية معالج (handler) تغيير التّاريخ، حيث يُستدعى عند تغيير الوقت، أو التّاريخ من واجهة المستخدم UI، وله معاملٌ وحيد هو حدث (event)، يُستخدم للحصول على التّاريخ المحدّد في منتقي الوقت والتّاريخ (picker)، ويفضّل استخدام الخاصيّة onDateChange عوضًا عنها.

النوع مطلوب
دالة (function) لا

onDateChange

وهو معالج تغيير التّاريخ، ويُستدعى عند تغيير الوقت أو التّاريخ من واجهة المستخدم UI، وله معامل وحيد هو كائن من نوع تاريخ (Date object)، ويمثل الوقت والتاريخ المُحدّث.

النوع مطلوب
دالة (function) نعم

maximumDate

تُحدد أعلى قيمةٍ للوقت والتّاريخ، وبذلك يضيق مجال قيمهما المحتملة.

النوع مطلوب
تاريخ (Date) لا

ويبين المثال التّالي منتقي الوقت والتّاريخ عند ضبط maximumDate على 31 كانون الثّاني:

001maximumDate.gif

minimumDate

تُحدد أقلّ قيمةٍ للوقت والتّاريخ، وبذلك يضيّق مجال قيمهما المحتملة.

النوع مطلوب
تاريخ (Date) لا

كما هي موضّحة في المثال السابق مع maximumDate.

minutInterval

تُحدد القيمة الفاصلة لاختيار الدقائق.

النوع مطلوب
‎‏تعداد ‪(1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30) لا

ويبين المثال التّالي منتقي الوقت والتّاريخ عند ضبط minutInterval على القيمة 10:

002minuteInterval.png

mode

تُحدّد وضع (mode) منتقي الوقت والتّاريخ.

النوع مطلوب
('date', 'time', 'datetime', 'countdown') لا

ويبين المثال التّالي منتقي الوقت والتّاريخ عند ضبط mode على القيم date، وtime، وdatetime من اليسار إلى اليمين:

003mode.png

local

تُحدّد الإعدادات المحلّية لمنتقي الوقت والتّاريخ، ويجب أن تكون قيمته موافقة لصيغة Locale ID.

النوع مطلوب
سلسلة نصية (string) لا

timeZoneOffsetInMinutes

تُحدد إزاحة المنطقة الزّمنية (Timezone) بالدّقائق، حيث يستخدم منتقي الوقت والتّاريخ المنطقة الزّمنية للجهاز افتراضيًّا، إلاّ أنّه يمكن استخدام هذه الخاصّية لإجباره على استخدام منطقةٍ زمنيّةٍ مختارةٍ، فعلى سبيل المثال لإظهار الأوقات بتوقيت المحيط الهادي، يمكنك تمرير ‪.-7 * 60

النوع مطلوب
عدد (number) لا

intialDate

تُحدّد القيمة الابتدائيّة للوقت والتّاريخ، وهي مفيدة عندما لا نرغب بالتّنصّت (listening) للأحداث، وتحديث الخاصيّة Date للمحافظة على تزامن (sync) الحالة المتحكّم بها، لأنّ هنالك أخطاءً (bug) معروفةً للحالة المتحكّم بها تؤدّي لخروجها عن التّزامن مع منصّة Native، لهذا وُضعت الخاصّية intialDate لجعل منصّة Native مصدرًا موثوقًا للمعلومات.

النوع مطلوب
تاريخ (Date) لا

مصادر