Невозможно получить данные одного объекта из массива в реагирующем - PullRequest
0 голосов
/ 27 апреля 2020

Я новичок в реакции-нативной. Я не могу получить «настоящие» данные из моего API, и я получаю сообщение об ошибке «не могу прочитать свойство присутствует», поэтому я просто хочу получить свой ответ API. Вот мои данные API и, пожалуйста, проверьте мой код тоже.

{
 "message": "present in this month",
  "data": [
    {
        "present": 10
    }
   ],
  "status": "1"
 }


  async componentDidMount() { 
 try {
            const DEMO_TOKEN = await AsyncStorage.getItem('isLoggedIn');
            if (DEMO_TOKEN != null) {
                console.log('Token', DEMO_TOKEN);
                fetch('http://104.197.28.169:3000/userPresentInThisMonth', {
                    method: 'GET',
                    headers: {
                        Authorization: 'Bearer ' + DEMO_TOKEN,
                    },                     
                })
                    .then(response => response.json())                     
                    .then(responseJson => {
                          alert(responseJson)              
                        console.log(responseJson);
                        this.setState({
                            presentmonthdata : responseJson,
                        });
                    });
            }
        } catch (error) {
            alert(JSON.stringify(error));
            console.error(error);
        }
   }

Это мое текстовое значение.

   {this.state.presentmonthdata.data[0] &&
    <Text   style={{color: 'grey',fontSize: 30,   fontWeight: 'bold',  }}>
                            {this.state.presentmonthdata.data[0].present}
                  </Text>

}

Ответы [ 3 ]

0 голосов
/ 28 апреля 2020

Попробуйте следующее: {this.state.data.length > 0 ? this.state.data[0].present : 0;}

Я предполагаю, что данные - это пустой массив или другой тип данных ...

0 голосов
/ 29 апреля 2020

Попробуйте:

изменить:

{this.state.presentmonthdata.data[0] &&
    <Text style={{color: 'grey',fontSize: 30,   fontWeight: 'bold',  }}>
                            {this.state.presentmonthdata.data[0].present}
                  </Text>

на

<Text>
{this.state.presentmonthdata.data!= undefined ? this.state.presentmonthdata.data[0].present: null}
</Text>

Надеюсь, это поможет!

0 голосов
/ 27 апреля 2020

решение

{this.state.presentmonthdata.data[0]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...