React-Native возвратное представление из AsyncStorage - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь отобразить список карт из AsyncStorage.Что я хочу сделать, это получить все данные из хранилища и создать список карт в зависимости от этих данных.Я могу видеть данные хранения внутри функции, но я не могу вернуть представление.Вот что я сделал.

import {View,AsyncStorage} from "react-native";
import { Container, Header, Content, Card, CardItem, Text, Body, Icon, Fab } 
from "native-base";


export default class extends Component{

 async _retrieveData(){
    const value = await AsyncStorage.getAllKeys();
    return value;
 };

 getAll(){
   this._retrieveData()
     .then(items =>{
       items.map(async (k) => {
         await AsyncStorage.getItem(k).then(ok => {

           var cards = [];

             cards.push(

               <Card key="">
                 <CardItem>
                   <Body>
                     <Text>
                       ok data
                     </Text>
                   </Body>
                 </CardItem>
               </Card>

             )
           return cards;

         });
       });

     })
     .catch(err =>{
       alert(err);
     });
   };


   render(){

       return(
         <Container>
           <Content padder>
           {this.getAll()}
           </Content>
         </Container>
       )
   }
}

1 Ответ

0 голосов
/ 10 февраля 2019

Вы не можете вызвать функцию getAll внутри метода render, потому что требуется обещание для разрешения.

Вы можете вызвать ту же функцию внутри метода componentenDidMount, сохранить карты в локальное состояние и затем отобразить эти данные в методе render.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...