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

- 2 هفته پیش
توسط محسن فلاح آپدیت شد
محسن فلاح ( 6380 تجربه )
2 هفته پیش
تخصص : برنامه نویس وب و موبایل

سلام وقت بخیر

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

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

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

حسام موسوی ( 166124 تجربه )
2 هفته پیش
تخصص : طراح و برنامه نویس

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

محسن فلاح ( 6380 تجربه )
2 هفته پیش
تخصص : برنامه نویس وب و موبایل

سلام
نه هیچ شرطی نیست
فقط یه 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

محسن فلاح ( 6380 تجربه )
2 هفته پیش
تخصص : برنامه نویس وب و موبایل

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

برای ارسال پاسخ باید وارد سایت شوید