راکت

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

6 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

6
حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

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

محمد صادق کریمی
محمد صادق کریمی
@m.s.karimi.ubuntu

تخصص: برنامه نویس

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

شاید پاسخ شما همین‌جا باشد

میلاد-م
میلاد-م
@milad

تخصص: توسعه‌دهنده رابط کاربری - Front-End

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

محمد صادق کریمی
محمد صادق کریمی
@m.s.karimi.ubuntu

تخصص: برنامه نویس

@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

تخصص: برنامه نویس

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

mahdi2k
mahdi2k
@mahdifalahati75

تخصص: junior full stack developer

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

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

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