2016-10-04 72 views
28

我有以下我的渲染方法反應的本地代碼:「React.Children.only有望獲得一個陣營子元素」 <TouchableHighlight>在把<Image>,當錯誤<View>

render() { 
    const {height, width} = Dimensions.get('window'); 
    return (
     <View style={styles.container}> 
     <Image 
      style={{ 
      height:height, 
      width:width, 
      }} 
      source={require('image!foo')} 
      resizeMode='cover' 
     /> 
     <TouchableHighlight style={styles.button}/> 
     </View> 
    ); 
    } 

它給我

React.Children.only有望獲得一個陣營元素孩子

錯誤。如果我刪除TouchableHighlight組件,它工作正常。另一方面,如果我刪除了Image組件,它仍然會給出這個錯誤。我看不出爲什麼會出現這個錯誤,並且<View>應該能夠在其中有多個組件進行渲染。
任何想法?

回答

42

看來<TouchableHighlight>必須有一個孩子。文檔說,它只支持一個孩子,並且不止一個孩子必須包裝在<View>中,但並不是說它必須至少有(和大多數)一個孩子。我只想要一個沒有文字/圖像的普通彩色按鈕,所以我不認爲有必要添加一個孩子。

我會嘗試更新文檔來表明這一點。

17

<TouchableHighlight>元素是錯誤的來源。 <TouchableHighlight>元素must have a child element

嘗試運行這樣的代碼:

render() { 
const {height, width} = Dimensions.get('window'); 
return (
    <View style={styles.container}> 
    <Image 
     style={{ 
     height:height, 
     width:width, 
     }} 
     source={require('image!foo')} 
     resizeMode='cover' 
    /> 
    <TouchableHighlight style={styles.button}> 
     <Text> This text is the target to be highlighted </Text> 
    </TouchableHighlight> 
    </View> 
); 

}

+1

有小錯字,應該是',而不是''。 – maxko87

相關問題