2016-12-30 2 views
1

я использую Реагировать Native для построения Android AppРеагировать Native Компонент не работает проверка визуализации метод App

Я пытаюсь импортировать компоненты в index.android.js файл из папки, расположенной в app/container/AppContainer.js.

Когда я запускаю код я получил Тхи ошибку:

Тип элемента недействителен: ожидается строка (для встроенных компонентов) или класса/функции (для составных компонентов), но получил не определено. Проверьте метод визуализации 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

Вы пробовали 'import {AppContainer} из './App/container/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

Смежные вопросы