1. 程式人生 > >React Native 踩坑日記

React Native 踩坑日記

一、TabBarIOS 出現react.children.only expected to receive a single react element child

問題程式碼於示圖:

 findPage(){
        return (
            <TabBarIOS.Item
                icon={{uri:'tabbar_message_center', scale: 2}}
                title="發現"

                onPress={()=>this.setState({
                    selectedTabBarItem:'find'
                })}
                selected={this.state.selectedTabBarItem == 'find'}

            >

            </TabBarIOS.Item
>
) },

這裡寫圖片描述
解決辦法:
React Native 中無論是 TabBarIOS.Item 還是 TabBar.Item 必須有且只有一個元件,說白了就是需要有子元件的存在,並且只存在一個子元件。

findPage(){
        return (
            <TabBarIOS.Item
                icon={{uri:'tabbar_message_center', scale: 2}}
                title="發現"

                onPress={()=
>
this.setState({ selectedTabBarItem:'find' })} selected={this.state.selectedTabBarItem == 'find'} > //新增一個View就結局了問題。 <View > <Text>發現</Text> </View
>
</TabBarIOS.Item> ) },

二、 ListView的屬性 flexWrap:’wrap’,不起作用

解決辦法:
由於在RN 0.28之後的版本上官方已經修改了flexWrap:’wrap’的工作方式,0.28以上的版本中 flexWrap:’wrap’是和預設的alignItems: ‘stretch’是一起工作的;如果是0.28之後的版本,你需要加上alignItems: ‘flex-start’
如下:

 contentViewStyle:{
      flexDirection:'row',
      flexWrap:'wrap',
      alignItems:'flex-start',

  },