اذهب إلى المحتوى

السؤال

نشر

أردت جلب معلومات الحصص من قاعدة البيانات لكني أرى ظهور التاريخ كما هو في قتاعدة البيانات ماهو السبب وكيف أغيره ؟

ثانيا هو يجلب لي جميع الحصص المسجلة في قاعد البيانات وأنا أريد أن أجلب فقط الحصص التي أنشأها المستخدم الحالي للتطبيق كيف أفعل ذلك ؟

شيفرة عرض جميع الحصص 

import React ,{useEffect,useState} from 'react';
import {View,Text,StyleSheet,TouchableOpacity,FlatList,SafeAreaView} from 'react-native';
import List from './compononts/list';
import axios from '../config/axios';
import Loader from './compononts/Loader';
import Inbut from './compononts/Inbut';
import {GETROOMS_URL} from '../config/urls';
import AsyncStorage from '@react-native-async-storage/async-storage';
function ListRoom(){
const [isLoading ,setLoading]=useState(false);
const [rooms ,setRooms]=useState([]);
const [selectedRoom,setSelect]=useState(null);

useEffect(()=>{
_getRooms();
},[]);


_getRooms=()=>{
(async()=>{
  setLoading(true);
 try{
 const token =await AsyncStorage.getItem('accessToken');
 axios.defaults.headers.common.Authorization=`JWT ${token}`;
const response =await axios.get(GETROOMS_URL);
setRooms(response.data);
setLoading(false);

 }catch(e){
setLoading(false);
 }
})();
}
const renderItem = ({item})=>{
return (
  <View style={stayles.container}>
<List
date={item.date}
>
</List>
</View>

)
}
const KeyExrtactor=item=>item.id.toString();
return(
<View style={stayles.container}>
 <Loader title="إحضار الحصص" loading={isLoading}></Loader>
 <SafeAreaView style={stayles.container}>
   {rooms.length !==0 ?(
<FlatList
 data={rooms}
 renderItem={renderItem}
 KeyExrtactor={KeyExrtactor}
>
</FlatList>
   ):<Text>لا يوجد حصص</Text>}
 </SafeAreaView>

</View>
)
};

const stayles=StyleSheet.create({
container:{
flex:1,
backgroundColor:'#E8EAED',
}
})
export default ListRoom;

 

Screenshot_20220606-065706_Expo Go.jpg

backend.rar

Recommended Posts

  • 0
نشر

لحل مشكلة التاريخ لديك خيارين، الأول هو استخدام ال Date المبني بشكل افضراضي في js واستخدام الفورمات المخلتفة التي يقدمها للتواريخ لإظهاره بالشكل التي تريده، مثال : 

const d = new Date("التاريخ القادم من قاعدة البيانات");
let text = d.toLocaleDateString();
console.log(text); // 12/12/2012

 

حيث الوظيفة السابقة تعرض التاريخ بالشهر واليوم والسنة، وهنالك الـ ()toLocaleTimeString لعرض الوقت بالساعات والدقائق والثواني، وكذلك ()toLocaleString لعرض التاريخ مع الوقت.

أو بإمكانك استخدام مكتبة جاهزة تتيح العديد من الوظائف الخاصة بعرض الوقت وهي : momentjs

وتقوم بتنزيلها بالشكل : 

npm install moment --save

ومن ثم استدعائها بالشكل : 

import moment from 'moment';

واستخدامها : 

moment().format('MMMM Do YYYY, h:mm:ss a'); // June 6th 2022, 9:49:49 am
moment().format('dddd');                    // Monday
moment().format("MMM Do YY");               // Jun 6th 22
moment().format('YYYY [escaped] YYYY');     // 2022 escaped 2022
moment().format();                          // 2022-06-06T09:50:06+03:00

بالنسبة للسؤال الثاني فالمشكلة هي من استدعاء البيانات من قاعدة البيانات فيجب إضافة شرط أن يكون اسم المستخدم يساوي اسم المستخدم التي تريد البيانات الخاصة به.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...