2017-04-05 59 views
2
import React, { Component } from 'react'; 
import { 
    AppRegistry, 
    StyleSheet, 
    Text, 
    View 
} from 'react-native'; 
import Login from './js/components/Login'; 
import userReducers from './js/reducers/user'; 

import { createStore, combineReducers } from 'redux'; 
import { Provider } from 'react-redux'; 

let store = createStore(combineReducers({userReducers})); 

class App extends Component { 
    render() { 
    return (
     <Login /> 
    ); 
    } 
} 

export default class Testextends Component { 
    render() { 
    return (
     <Provider store = {store}> 
     <App /> 
     </Provider> 
     // <View> 
     // <Text>jhdgf</Text> 
     // </View> 
    ); 
    } 
} 

AppRegistry.registerComponent('Test',() => Test); 

它給了我以下錯誤:React.Children.only有望獲得一個陣營元素孩子

enter image description here

我想反應母語與終極版的一個基本的例子。如果我也刪除TouchableHighlight,錯誤仍然存​​在。任何想法這裏有什麼不對?

+0

嘿,我現在面臨同樣的問題。你找到了這個根源嗎? – webdevbyjoss

回答

0

它似乎並沒有看到你做錯了什麼,在粘貼的代碼上,你確定錯誤來自你的代碼的這一部分?

也許嘗試()TouchableHighlight組件之間放,但我不認爲這將改變一些東西......

或者嘗試三元而非二元運算。

另外請確保您從react-native導入TouchableHighlightText

+0

Magrin我再次調試了整個代碼,發現錯誤在index.android.js中的中。下面是代碼: – Kirti

+0

好吧試試這個:'<提供商商店= {商店}> {()=>}'並刪除所有註釋行中的退貨 –

+0

Magrin沒有效果。錯誤仍然存​​在。其他解決方案? – Kirti

0

嘗試刪除所有不必要的空格

<View>{ !this.props.user.loggedIn && 
      <TouchableHighlight onPress={this.onLoginButtonPress}> 
      <Text>Login</Text> 
      </TouchableHighlight> 
}</View> 

因爲下面的例子

<View> {...}</View> 

你有兩個孩子:第一個空格和第二都在弧形托架。

+2

空間將在react-native中的其他錯誤中恢復: 必須將RawText「」包裝在明確的組件中。 –

0

曾與下面的反應本地代碼相同的問題:

import {Link} from 'react-router-native' 

<Link to={props.url}>{props.title}</Link> 

花幾個小時試圖理解爲什麼類似的代碼可在WEB但不是在本地視圖。 React Native運行時沒有可行的錯誤消息或提示,哪些組件導致此故障,因此很難確定問題。

管理人做來解決這個崩潰以下:

import {Link} from 'react-router-native' 
import {Text} from "react-native"; 

<Link to={props.url}><Text>{props.title}</Text></Link> 

貌似title文多重元素處理,所以我們結束了這樣的錯誤。

這不是主題的解決方案。但是,由於在React Native中出現這種錯誤的方式有很多種,因此對於那些谷歌搜索結束並在此結束的人來說,這樣的另一個崩潰例子可能會很有用。

0

首先,「出口默認類Testextends組件」實際上應該是「出口默認類測試擴展組件」

爲什麼會引發錯誤是因爲提供者組件只需要一個元素的原因。 例如: 錯誤:

<provider store = {store}> 
<div/> 
<div/> 
<provider> 

正確:

<provider store = {store}> 
<App/> 
<provider> 

你做了正確的,如果你評論的組件。嘗試類錯誤,看看它是否工作。

相關問題