首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React-Native TypeError:未定义不是对象(计算this.state.signatures.length)

React-Native TypeError:未定义不是对象(计算this.state.signatures.length)
EN

Stack Overflow用户
提问于 2018-10-14 14:17:52
回答 1查看 3.8K关注 0票数 0

我是react-native的新手,我一直在尝试从API获取数据,然后在视图中显示它们。这是我的代码

FetchSignatures.js:

代码语言:javascript
复制
    const URL = 'http://localhost:8000';

    export default {
     async fetchSignatures() {
       try{
           let response = await fetch(URL+'/api/signatures');
           let responseJsonData = await response.json();
           return responseJsonData;
       }
       catch(e){
         console.log(e)
       }
     }
    }

Signatures.js:

代码语言:javascript
复制
    import React, { Component } from 'react';
    import { View, Text, StyleSheet  } from 'react-native';
    import ajax from '../services/FetchSignatures';
    import SignaturesList from '../components/SignaturesList';

    export class Signatures extends Component {
      state = {
        signatures: []
      }

      async componentDidMount() {
        const signatures = await ajax.fetchSignatures();
        this.setState({signatures});
      }
      render() {
        return (
        <View>
        {
          this.state.signatures.length > 0 ? <SignaturesList signatures= 
          {this.state.signatures}/> : <Text>No Guest</Text>
        }
        </View> 
        )
      }
    }

    export default Signatures;

它总是返回一个错误,说"TypeError:未定义不是一个对象(计算'this.state.signatures.length')。

这是我的API的截图:

请谁来帮我解决这个问题..提前道谢..

EN

回答 1

Stack Overflow用户

发布于 2018-10-14 19:58:42

在渲染this.state.signatures.length时,签名不会被创建为一种状态,因为从API获取数据需要一些时间。这就是你得到未定义错误的原因。所以,只要创建一个条件渲染即可。

试试下面的代码。

代码语言:javascript
复制
render() {
        if(this.state.signatures){
          return(
            this.state.signatures.length > 0 ? <SignaturesList signatures= 
            {this.state.signatures}/> : <Text>No Guest</Text>

          );
        }
  }
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52800016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档