无法添加没有YogaNode的孩子

时间:2019-01-29 09:38:41

标签: javascript react-native

这是我的功能

  getIndicators(){
    const {pages} = this.state
    var indicators = null
    for(var i = 0 ; i < pages.length ; ++i){
      if(pages[i].active)
        indicators += <View style={styles.activeCircle} />
      else
        indicators += <View style={styles.inActiveCircle} />  
    }

    return indicators;
  }

return函数的render中:

 <View style={{width:'70%',height:'100%',justifyContent:'center',flexDirection:'row',alignSelf:'center',alignItems:'center',backgroundColor:'#fff'}}>
  {this.getIndicators()}
 </View>

但我收到此错误消息:

  

无法将没有YogaNode的孩子添加到没有父母的孩子   测量。

我必须使用此功能。没有它,我必须编写硬代码。

1 个答案:

答案 0 :(得分:2)

问题是因为您正在将视图串联在一起。它们需要添加到数组中。同样,如果您遍历项目,则将需要具有唯一的key属性,我已在下面的更新后的getIndicators函数中添加了该属性。

如果将getIndicators函数更新为以下功能,则应该可以使用

getIndicators = () => {
  const {pages} = this.state
  var indicators = []
  for(var i = 0 ; i < pages.length ; ++i){
    if(pages[i].active)
      indicators.push(<View key={i} style={styles.activeCircle} />)
    else
      indicators.push(<View key={i} style={styles.inActiveCircle} />)  
  }
  return indicators;
}