محسن فلاح
5 سال پیش توسط محسن فلاح مطرح شد
3 پاسخ

بلاک شدن ui هنگام fetch در ری اکت نیتیو

سلام وقت بخیر

من در یکی از صفحاتم در componentWillMount دارم یه api ایی رو کال میکنم که این یکم زمان بره تا اینکه جوابش بیاد و نمایش بده

مشکل اینجاست که از زمان کال api تا نمایش دادن دیتا صفحه بلاک میشه و دیگه هیچ کدوم از دکمه های صفحه کار نمیکنه

راه حل چیست؟
@hesammousavi


ثبت پرسش جدید
حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 5 سال پیش مطرح شد
1

آیا شما شرطی رو روی صفحه قرار میدید چون به شکل معمول نباید این حالت باشه . عجیبه واقعا


محسن فلاح
تخصص : برنامه نویس موبایل و وب
@mohsen.fallah65 5 سال پیش مطرح شد
0

سلام
نه هیچ شرطی نیست
فقط یه fetch هست و نمایش خروجیش بدون هیچ شرطی
ما خروجی fetch رو تو یه استیت آرایه میریزیم بعدش مپ میکنم همین

async fetchAllCredits() {
        const UserData = JSON.parse(await AsyncStorage.getItem('UserData'));
        const token = UserData.token;
        const GetData = await fetch(Utility.BASE_URL + `credit/credit-source`, {
            headers: {
                'Authorization': token,
            },
        }).then(response => response.json());
        console.log('Data Last AllCredits =============================', GetData)
        this.setState({
            credits: GetData
        });
    }
let AllCredits = this.state.credits.map((val, key) => {
                return <Picker.Item
                    label={val.guarantor.name + " " + Utility.MoneyType(val.credit.amount.toString()) + " ریال "}
                    value={val.id}
                    key={key}/>
   });
return <Picker
                        itemStyle={{
                            ...Platform.select({
                                ios: {fontFamily: 'IRANSansMobile', fontWeight: 'bold'},
                                android: {fontFamily: 'IRANSansMobile_Bold'}
                            }),
                            color: 'rgb(98,98,98)',
                            justifyContent: 'center',
                            alignSelf: 'center',
                            width: '100%'
                        }}
                        note
                        mode="dropdown"
                        selectedValue={this.state.selectedCredits}
                        onValueChange={this.onValueChange.bind(this)}
                    >
                        {AllCredits}
                    </Picker>

این یه نمونه روش کاره اونی که به مشکل میخوره با همین روشه ولی دیتایی که برمیگردونه زیاده و 100 تا 100 برمیگردونه
ممنون
@hesammousavi


محسن فلاح
تخصص : برنامه نویس موبایل و وب
@mohsen.fallah65 5 سال پیش مطرح شد
1

با فلت لیست پیاده سازی کردم یخورده اوضاع بهتر شد ولی بازم بگی نگی دیلی داره
@hesammousavi


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام