代码之家  ›  专栏  ›  技术社区  ›  fun joker

在react native中获取类型错误未定义的对象?

  •  2
  • fun joker  · 技术社区  · 6 年前

    我试图在render()中输出数据,但是我得到了一个错误,为什么?

    代码:

    render() {
    
            let marketing_plan_projects = [];
    
            marketing_plan_projects = this.props.markets.data ? this.props.markets.data : null;
            let marketing_updates = get_marketing_updates_from_projects(marketing_plan_projects);
    
            console.log(marketing_updates);
    
            return (
                <ScrollView style={styles.container}>
    
                    <Text>{marketing_updates[0].project_name}</Text>
    
                </ScrollView>
            );
        }
    

    我也试过这个:(仍然给出错误)

    <Text>{marketing_updates ? marketing_updates[0].project_name: ""}</Text>

    console.log(更新)是:

    enter image description here

    我收到以下错误:

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  2
  •   R.Duteil    6 年前

    marketing_updates ? marketing_updates[0].project_name: ""
    

    不测试数组是否为空,只测试它是否存在。测试 marketing_updates = [] 将返回真值,因为它是一个 真实价值 .

    有关更多信息,请参见此处: https://developer.mozilla.org/en-US/docs/Glossary/Truthy

    因此,可以有一个现有的数组,但该数组的值未定义 marketing_updates[0] 因为它可能是空的。

    为避免错误,请尝试以下操作:

    marketing_updates.length != 0 ? marketing_updates[0].project_name: ""