在React Native中获取类型错误未定义对象?

时间:2018-10-01 09:47:57

标签: javascript reactjs react-native

我正在尝试在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(marketing_updates)是:

enter image description here

我遇到以下错误:

enter image description here

1 个答案:

答案 0 :(得分:2)

此行:

marketing_updates ? marketing_updates[0].project_name: ""

不测试数组是否为空,而是测试数组是否存在。测试marketing_updates = []将返回true,因为它是真实值

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

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

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

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