Использование Flatlist в React Native

Как мой плоский список может теперь отображать любой список, он просто отображается пустым внутри некоторых контейнер:

Использование Flatlist в React Native

здесь данные json:

{
    "page": 2,
    "per_page": 3,
    "total": 12,
    "total_pages": 4,
    "data": [
        {
            "id": 4,
            "first_name": "Eve",
            "last_name": "Holt",
            "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/128.jpg"
        },
        {
            "id": 5,
            "first_name": "Charles",
            "last_name": "Morris",
            "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/stephenmoon/128.jpg"
        },
        {
            "id": 6,
            "first_name": "Tracey",
            "last_name": "Ramos",
            "avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/bigmancho/128.jpg"
        }
    ]
}

из regres.in, чтобы проверить фиктивные данные, и вот мой код:

class UserList extends React.Component {


state = {
        apiAreLoaded: false,


};


constructor(props) {
    super(props);

    this.state.data = [];

}

async componentDidMount() {



    // define the api
    const api = create({
        baseURL: 'https://reqres.in/',
        headers: {
        Accept: 'application/json'
        }
    })

    // start making calls
    //api.get('/api/users?page=2').then((response) => response.data).then(console.info);

    //use async
    const response = await api.get('/api/users?page=2');  
   // console.info(response.data.data);
    this.setState({ apiAreLoaded: true, data: response.data });




   // console.info(this.state.data);  






}

render() {




    if (!this.state.apiAreLoaded)
    {
        return  <AppLoading />;

    }



    return(
        <Container>
            <Content>

                <FlatList
                    data = {this.state.data}
                    renderItem = {({ item }) => {
                        console.info(data.avatar)
                        return(
                                <ListItem>
                                    <Text>{item.id}</Text>
                                </ListItem>



                        )
                    }}
                />

            </Content>
            </Container>



    );

}


}



export {UserList};

Для информации я использую эту версию:

"expo": "^27.0.1", "native-base": "^2.6.1", "react": "^16.4.1", "react-native": "~0.55.2"

любое предложение ?

Я не уверен, что это ошибка, но это тоже случилось. Вы должны удалить фигурные скобки с renderItem = {({ item }) => {, как этот renderItem=({ item }) =>

SGhaleb 15.07.2018 09:16

извините это становится ошибкой

navotera 15.07.2018 13:11
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
2
306
1

Ответы 1

Это работает сейчас ... а вот как это работает ...

  1. Убедитесь, что вы отформатировали ответ api, как говорится в документе:

data = {[{title: 'Title Text', key: 'item1'}, ...]}

Примечание : если вы используете https://reqres.in в качестве фиктивных данных, убедитесь, что вы получили такой ответ.

this.setState({ data: response.data.data });

  1. Используйте Flatlist и keyExtractor здесь в примере кода:

     <FlatList
           data = {this.state.data}
           keyExtractor = {this._keyExtractor}
           renderItem = {({item}) => 
           <Text>{item.first_name}</Text>    
    
     }
      />
    
  2. См. _KeyExtractor, ключ экстрактора, используемый для создания виртуализированного ключа, и вот код:

    ._keyExtractor = (item, index) => index.toString();

Другие вопросы по теме