【问题标题】:How to make an array of React Native components?如何制作一系列 React Native 组件?
【发布时间】:2018-03-27 16:15:58
【问题描述】:

我正在尝试在我的视图中使用react-native-table-component (docs),但我遇到了一个问题,因为我希望我的专栏具有图像组件。我按照使用按钮的文档中的示例进行操作,并且有这样的内容:

    console.log("following pic arr: " + this.state.followingPics);
    var following_pics;
    if(this.state.followingPics.length === 0) {
        following_pics = [];
    }
    else {
        //this.state.followingPics is an array of picture urls
        JSON.parse(this.state.followingPics).forEach((pic, i) => {
            following_pics.push(makeImage(pic));
        })
    }

    var tableArr = [following_pics, following];

    return (
        <View style={shared.basicView}>
            <TextInput
                autoCorrect={false}
                style={{height: 40}}
                placeholder="Follow a user..."
                onSubmitEditing={(input) => this.addFollower(input.nativeEvent.text)}
            />
            <Table style={styles.table}
                   borderStyle={{borderWidth: 0.5, borderColor: '#c8e1ff'}}>
                <Row data={tableHead}
                     style={styles.head} textStyle={styles.text}
                     flexArr={[1]}
                />
                <Cols data={tableArr}
                      textStyle={styles.text}
                      heightArr={[50, 50, 50, 50, 50, 50, 50, 50]}
                      flexArr={[1, 2, 1, 2]}
                />
            </Table>
        </View>
    );

但我不断收到错误消息 undefined is not an object (evaluating following_pics.push)。有什么办法可以将这些图片添加为指定的数据数组?

【问题讨论】:

  • 您已经点击了 if 语句的 else 部分(第一个 sn-p 的第 6 行),此时变量未定义。像 var following_pics = [] 一样实例化你的变量。
  • 哦,哇,非常愚蠢的错误。谢谢!

标签: javascript reactjs react-native react-table


【解决方案1】:

您在 else 块中所做的是您尝试将 push 元素添加到未定义的变量:

console.log("following pic arr: " + this.state.followingPics);
var following_pics;  // this will be undefined in else block
if(this.state.followingPics.length === 0) {
    following_pics = [];
}
else {
    //this.state.followingPics is an array of picture urls
    JSON.parse(this.state.followingPics).forEach((pic, i) => {
        following_pics.push(makeImage(pic));
    })
}

我不明白你为什么需要这个 if 块,为什么不只是:

console.log("following pic arr: " + this.state.followingPics);
var following_pics = [];
//this.state.followingPics is an array of picture urls
JSON.parse(this.state.followingPics).forEach((pic, i) => {
   following_pics.push(makeImage(pic));
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多