我在本机代码中具有以下渲染方法:

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预计会收到一个react元素的孩子

如果我删除TouchableHighlight组件,它可以正常工作。如果我删除图像组件,它仍然会出现该错误。

我看不出为什么会给我这个错误。<View>应该能够内部有多个组件进行渲染。

答案

看起来<TouchableHighlight>必须有一个孩子。文档说,它仅支持一个孩子,一个以上的孩子必须包裹在一个<View>,但并不是说它至少必须有一个孩子(大多数)一个孩子。我只是想拥有一个没有文本/图像的纯色按钮,所以我认为有必要添加一个孩子。

我将尝试更新文档以表明这一点。

来自: stackoverflow.com