无法从数组中获取本机对象的数据

时间:2020-04-27 14:17:32

标签: react-native

我是react-native的新手。我无法从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 :(得分:1)

尝试一下:

更改:

{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>

希望这会有所帮助!

答案 1 :(得分:0)

解决方案是

{this.state.presentmonthdata.data[0]}

答案 2 :(得分:0)

请尝试以下操作: {this.state.data.length > 0 ? this.state.data[0].present : 0;}

我猜数据可能是空数组或其他数据类型...