محمد صادق کریمی
4 سال پیش توسط محمد صادق کریمی مطرح شد
6 پاسخ

کار نکردن onPress هم زمان با fetch

سلام دوستان
مشکلی که برای من به وجود اومده این هستش که زمانی که fetch شروع میکنه به دریافت اطلاعات تا گرفتن response اگر روی button تاچ کنید اون button کار نمی کنه...
راه حلی برای این مشکل دارید؟


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

سلام کدتون رو به چه شکلی نوشتید کاملا بستگی به نوع کدتون داره


محمد صادق کریمی
تخصص : برنامه نویس
@m.s.karimi.ubuntu 4 سال پیش مطرح شد
0

@hesammousavi
تابعی که fetch داخل اون قرار داره رو داخل componentDidMount صداش میکنم


میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 4 سال پیش مطرح شد
0

سعی کنید جهت راهنمایی گرفتن کدهای مربوطه رو برای سایرین قرار بدین.
اینطوری حل مسئله راحت تر میشه.


محمد صادق کریمی
تخصص : برنامه نویس
@m.s.karimi.ubuntu 4 سال پیش مطرح شد
1

@hesammousavi
@milad

componentDidMount() {
    this.refreshFlatList();
    }

refreshFlatList = () => {
        let temp = [{key: 'page', value: 1}, {key: 'page_size', value: 50}];
        temp.push({key: 'qf_state', value: this.props.myCity.id});
        this.getAdsData(temp, true);
    };

getAdsData(queryParameter, isRefresh) {
        if (isRefresh) {
            if (!this.state.isRefreshing) {
                this.setState({isRefreshing: true});
            }
        } else {
            this.setState({isLoading: true});
        }

        let url = domain + post_values_v4 + keyValueToParams(queryParameter);
        let httpOptions = {
            headers: {
                'Authorization': this.props.token,
            },
            method: 'GET',
        };

        fetch(url, httpOptions).then((response) => {
            return response.json();

        }).then((responseData) => {

            this.setState({
                adsFlatListData: responseData.content,
                isRefreshing: false,
                isLoading: false,
            });

        }).catch((error) => {
            this.setState({
                isRefreshing: false,
                isLoading: false,
            });

        })
    }

render(){
     return (
        <FlatList
            data={this.state.adsFlatListData}
            keyExtractor={(item, index) => String(index)}
            refreshControl={
                    <RefreshControl
                        refreshing={this.state.isRefreshing}
                        onRefresh={() => {
                            this.refreshFlatList()
                        }}
                    />
                }
            renderItem={({item, index}) => {
                return <AdsListPure item={item}
                        index={index}
                                    onPress={() => {
                                        this.onRowPress(item)
                                    }}/>
            }}
        />
        );
}

محمد صادق کریمی
تخصص : برنامه نویس
@m.s.karimi.ubuntu 4 سال پیش مطرح شد
0

کسی پیشنهادی نداره؟؟؟


mahdi2k
تخصص : junior full stack developer
@mahdifalahati75 4 سال پیش مطرح شد
0

button رو تا گرفتن response غیر فعال کن
یه جوری دیگه هندلش کن شاید با timeout بشه


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

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