我知道this question但似乎我的问题不同(即我不认为它是一个不正确的结构导入)
这是我得到的错误。提到的文件位于react-native库的深处,不幸的是,消息的信息量不大。
ExceptionsManager.js:73检查renderApplication.js上的代码:35。
不变违规:元素类型无效:预期为字符串(for 内置组件)或类/函数(用于复合组件) 但得到了:对象。 ExceptionsManager.js:65
此错误位于:
in RCTView (at View.js:71) in View (at AppContainer.js:102) in RCTView (at View.js:71) in View (at AppContainer.js:122) in AppContainer (at renderApplication.js:34)
下面的index.js给出了错误,但是如果我通过使用注释行直接显示我的组件而不是注册,那么一切都按预期工作。
index.js:
import { AppRegistry } from 'react-native';
import {App} from './src/App';
import {Test} from './src/App';
//AppRegistry.registerComponent('MyApp', () => Test);
AppRegistry.registerComponent('MyApp', App);
./ SRC / App.js:
import React, { Component } from 'react';
import {Provider} from 'react-redux';
import { createStore, applyMiddleware, combineReducers, compose } from 'redux';
import { createLogger } from 'redux-logger'
import reducer from './reducers/index'
import AppContainer from './containers/AppContainer'
import { Text, View} from 'react-native';
const loggerMiddleware = createLogger({predicate: (getstate, action) => __DEV__});
function ConfigureStore(initialState){
const enhancer = compose(
applyMiddleware(loggerMiddleware)
);
return createStore(reducer,initialState, enhancer);
}
const store = ConfigureStore({});
export class Test extends Component<{}> {
render() {
return (
<View >
<Text >
xxx
</Text>
</View>
);
}
}
export const App= () =>(
<Provider store={store}>
<Test/>
</Provider>
);
答案 0 :(得分:3)
将代码更改为以下内容可正常工作。
AppRegistry.registerComponent('MyApp', () => App);
registerComponent
似乎期望一个返回组件或无状态组件的函数,而不是组件(JSX)的内容。
答案 1 :(得分:0)
这是导入问题。当我使用时:
在cart.js中
const CartItem = require("./cart-item");
在cart-item.js中
export default CartItem
我确实有这个问题,但是当我更改导入时:
在cart.js中
import CartItem from "../cart/cart-item";
一切正常!