Как сделать топор ios .get в реакции родного? - PullRequest
0 голосов
/ 08 февраля 2020

Я новичок, чтобы реагировать на родных. Я пытаюсь сделать топор ios .get (). Но я получаю это в консоли:

        serverData: serverData
      })', '_this.setState' is undefined)]

_this.setState is not a function. (In '_this.setState({
    serverData: serverData
  })', '_this.setState' is undefined)

Это мой код:

export function FriendRequests ( ) {

state = {
    serverData: [],
};

axios.get('http://api.myslambook.in/swagger/#/users/', {
    auth: {
        username: 'xxxx',
        password: 'xxxxx'
    }
    }).then(res => {
        const serverData = res.data;
        this.setState({serverData});
    }).catch(err => console.log(err));
}

return (
    <SearchableDropdown
        items={this.state.serverData}
        defaultIndex={1}
        resetValue={false}
        textInputProps={
                    {
                        placeholder: "placeholder",
                        underlineColorAndroid: "transparent",

                    }
                    }
                    listProps={
                    {
                        nestedScrollEnabled: true,
                    }
     }
    />

)

} Я отредактировал свой код и предоставил более подробную информацию. Кто-нибудь может помочь? Спасибо.

1 Ответ

0 голосов
/ 08 февраля 2020

Эй, вы можете обрабатывать axios в следующих подходах

Обещание подхода

componentDidMount(){
    axios.get('http://api.myslambook.in/swagger/#/users/', {
        auth: {
            username: 'xxxx',
            password: 'xxxxx'
        }
    }).then(res => {
        this.setState({
            serverData: res.data.serverData
        });
    }).catch(err => console.log(err));
}

Асинхронный / ожидающий подход

async componentDidMount(){
    try {
        let response = await axios.get('http://api.myslambook.in/swagger/#/users/', {
            auth: {
                username: 'xxxx',
                password: 'xxxxx'
            }
        })
        this.setState({
            serverData: response.data.serverData
        });
    } catch (error) {
        console.log(error)
    }
}

Для получения дополнительной информации проверьте приведенный ниже пример кода.

import React from 'react';
import { FlatList, ActivityIndicator, Text, View  } from 'react-native';
import axios from 'axios';

export default class FetchExample extends React.Component {
    state = { 
        isLoading: true
    }

  componentDidMount(){
    return axios.get('https://facebook.github.io/react-native/movies.json')
      .then(res => {
        this.setState({
          isLoading: false,
          dataSource: res.data.movies,
        });
      })
      .catch((error) =>{
        console.error(error);
      });
  }

  render(){
    if(this.state.isLoading){
      return(
        <View style={{flex: 1, padding: 20}}>
          <ActivityIndicator/>
        </View>
      )
    }
    return(
      <View style={{flex: 1, paddingTop:20}}>
        <FlatList
          data={this.state.dataSource}
          renderItem={({item}) => <Text>{item.title}, {item.releaseYear}</Text>}
          keyExtractor={({id}, index) => id}
        />
      </View>
    );
  }
}

Надеюсь, это поможет вам. Не стесняйтесь сомнений.

...