2016-12-30 105 views
1
的方法

我使用陣營本地爲建設Android應用陣營本地組件不工作檢查渲染應用

我試圖導入組件index.android.js文件位於app/containers/AppContainer.js

當運行我得到THI錯誤的代碼:

元類型無效:預期的字符串(用於內置組件)或類/功能(用於複合組件),但得到:未定義。檢查的App

渲染方法,這是我的index.android.js文件:

import React, { Component } from 'react'; 

import { createStore,Provider, applyMiddleware, combineReduxers, compose } from 'redux'; 
import thunkMiddleware from 'redux-thunk'; 
import createLogger from 'redux-logger'; 


import { AppRegistry } from 'react-native'; 
import { expect,assert } from 'chai'; 

import reducer from './app/reducers'; 
import AppContainer from './app/containers/AppContainer' 

const loggerMiddleware = createLogger({ predicate: (getState,action) => __DEV__ }); 

function configureStore (initialState) { 
const enhancer = compose(
     applyMiddleware(
     thunkMiddleware, 
     loggerMiddleware, 
    ), 
    ); 
    return createStore(reducer, initialState, enhancer); 
} 

const store = configureStore({}); 



const App =() => (
    <Provider store={store}> 
    <AppContainer /> 
    </Provider> 
) 

AppRegistry.registerComponent('Appetizing',() => App); 

,這是我AppContainer.js文件:

import React, { Component } from 'react' 
import ReactNative from 'react-native' 
const { 
    View, 
    Text, 
} = ReactNative 

class AppContainer extends Component{ 

render(){ 
    return <View> 
    <Text style={{marginTop: 20}}> 
    I am app container 
    </Text> 
    </View> 
    } 

} 


export default AppContainer 
+0

你試過從'.app/containers/AppContainer''導入{AppContainer}嗎? – G0dsquad

+0

@ G0dsquad是的,沒有用。我得到了同樣的錯誤。 – userfi

+0

如果我包含組件並將其呈現在標準視圖中,您的代碼實際上對我來說工作得很好,例如home.js(而不是'index.android.js')。 – G0dsquad

回答

1

您的問題是在這條線:

import { createStore,Provider, applyMiddleware, combineReduxers, compose } from 'redux';

的命名方式進口ES6工作是,如果名稱不存在,它只是作爲undefined初始化,所以當試圖呈現<Provider>,反應抱怨。

您正在尋找的Provider包含react-redux包,除了redux之外,還需要安裝該包。你的代碼應該是這樣的:

import { createStore, applyMiddleware, combineReduxers, compose } from 'redux'; 
import {Provider} from 'react-redux'; 
0

嘗試以下在AppContainer.js

import React, { Component } from 'react' 
import ReactNative from 'react-native' 
const { 
    View, 
    Text, 
} = ReactNative 

export default class AppContainer extends Component{ 

render(){ 
    return <View> 
    <Text style={{marginTop: 20}}> 
    I am app container 
    </Text> 
    </View> 
    } 

} 
+0

謝謝,但沒有解決我的問題,我得到了同樣的錯誤 – userfi

0

嘗試將您的應用程序更新爲此。

const App = React.createClass({ 
    render: function() { 
    return (
     <Provider store={store}> 
     <AppContainer /> 
     </Provider> 
    ) 
    } 
}); 
+0

沒有解決我的問題,我得到了同樣的錯誤:( – userfi