警告:React.createElement:类型无效——应为字符串(对于内置组件)或 class/function
Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function
我正在做一个练习来进一步了解本机反应,我正在使用 FlagtList 来显示列表,但我抛出了以下错误:
Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s%s, undefined, You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check the render method of `App`.
Stack trace:
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:5716:10 in createFiberFromTypeAndProps
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:5744:4 in createFiberFromElement
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:9001:8 in reconcileSingleElement
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:9085:14 in reconcileChildFibers
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:11007:6 in reconcileChildren
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:11755:4 in updateHostComponent
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:17276:21 in performUnitOfWork
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:17316:41 in workLoop
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:17417:15 in renderRoot
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:18423:17 in performWorkOnRoot
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:18324:24 in performWork
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:18285:14 in performSyncWork
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:18169:19 in requestWork
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:17969:16 in scheduleWork
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:6934:17 in enqueueSetState
node_modules/react/cjs/react.development.js:335:31 in setState
App.js:55:18 in _callee$
node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:45:44 in tryCatch
node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:271:30 in invoke
我实现的代码如下:
import React, { Component } from 'react';
import { StyleSheet, Text, View, FlagtList } from 'react-native';
const styles = StyleSheet.create({
container: {
display: 'flex',
flex: 1,
justifyContent: 'center',
alignItems: 'center'
}
});
export default class App extends Component {
state = {
loading: true,
users: [] // Esto es un arreglo vacio el cual guardara los datos que se trae
};
constructor(props) {
super(props)
this.fetchUsers()
}
fetchUsers = async () => {
const respuesta = await fetch('https://jsonplaceholder.typicode.com/users');
const pre = await respuesta.json();
const usersjson = pre.map( x => ({ ...x, key: String(x.id) }));
this.setState({ users: [usersjson.name], loading: false });
}
render() {
const { loading, users } = this.state;
if ( loading ) {
return (
<View style={ styles.container }>
<Text>Por Favor espere... </Text>
</View>
);
}
return <View>
<FlagtList
data={ users }
renderItem={({ item }) => <Text>{item.name}</Text>}
/>
</View>;
}
}
不知道为什么报错,尝试执行项目,还是报同样的错误。
我运行它是用纱线开始的。
您输入错误,请尝试将 FlagtList 更改为 FlatList。
import React, { Component } from 'react';
import { StyleSheet, Text, View, FlatList } from 'react-native';
const styles = StyleSheet.create({
container: {
display: 'flex',
flex: 1,
justifyContent: 'center',
alignItems: 'center'
}
});
export default class App extends Component {
state = {
loading: true,
users: [] // Esto es un arreglo vacio el cual guardara los datos que se trae
};
constructor(props) {
super(props)
this.fetchUsers()
}
fetchUsers = async () => {
const respuesta = await fetch('https://jsonplaceholder.typicode.com/users');
const pre = await respuesta.json();
const usersjson = pre.map( x => ({ ...x, key: String(x.id) }));
this.setState({ users: [usersjson.name], loading: false });
}
render() {
const { loading, users } = this.state;
if ( loading ) {
return (
<View style={ styles.container }>
<Text>Por Favor espere... </Text>
</View>
);
}
return <View>
<FlatList
data={ users }
renderItem={({ item }) => <Text>{item.name}</Text>}
/>
</View>;
}
}
我正在做一个练习来进一步了解本机反应,我正在使用 FlagtList 来显示列表,但我抛出了以下错误:
Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s%s, undefined, You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check the render method of `App`.
Stack trace:
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:5716:10 in createFiberFromTypeAndProps
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:5744:4 in createFiberFromElement
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:9001:8 in reconcileSingleElement
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:9085:14 in reconcileChildFibers
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:11007:6 in reconcileChildren
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:11755:4 in updateHostComponent
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:17276:21 in performUnitOfWork
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:17316:41 in workLoop
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:17417:15 in renderRoot
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:18423:17 in performWorkOnRoot
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:18324:24 in performWork
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:18285:14 in performSyncWork
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:18169:19 in requestWork
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:17969:16 in scheduleWork
node_modules/react-native/Libraries/Renderer/oss/ReactNativeRenderer-dev.js:6934:17 in enqueueSetState
node_modules/react/cjs/react.development.js:335:31 in setState
App.js:55:18 in _callee$
node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:45:44 in tryCatch
node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:271:30 in invoke
我实现的代码如下:
import React, { Component } from 'react';
import { StyleSheet, Text, View, FlagtList } from 'react-native';
const styles = StyleSheet.create({
container: {
display: 'flex',
flex: 1,
justifyContent: 'center',
alignItems: 'center'
}
});
export default class App extends Component {
state = {
loading: true,
users: [] // Esto es un arreglo vacio el cual guardara los datos que se trae
};
constructor(props) {
super(props)
this.fetchUsers()
}
fetchUsers = async () => {
const respuesta = await fetch('https://jsonplaceholder.typicode.com/users');
const pre = await respuesta.json();
const usersjson = pre.map( x => ({ ...x, key: String(x.id) }));
this.setState({ users: [usersjson.name], loading: false });
}
render() {
const { loading, users } = this.state;
if ( loading ) {
return (
<View style={ styles.container }>
<Text>Por Favor espere... </Text>
</View>
);
}
return <View>
<FlagtList
data={ users }
renderItem={({ item }) => <Text>{item.name}</Text>}
/>
</View>;
}
}
不知道为什么报错,尝试执行项目,还是报同样的错误。
我运行它是用纱线开始的。
您输入错误,请尝试将 FlagtList 更改为 FlatList。
import React, { Component } from 'react';
import { StyleSheet, Text, View, FlatList } from 'react-native';
const styles = StyleSheet.create({
container: {
display: 'flex',
flex: 1,
justifyContent: 'center',
alignItems: 'center'
}
});
export default class App extends Component {
state = {
loading: true,
users: [] // Esto es un arreglo vacio el cual guardara los datos que se trae
};
constructor(props) {
super(props)
this.fetchUsers()
}
fetchUsers = async () => {
const respuesta = await fetch('https://jsonplaceholder.typicode.com/users');
const pre = await respuesta.json();
const usersjson = pre.map( x => ({ ...x, key: String(x.id) }));
this.setState({ users: [usersjson.name], loading: false });
}
render() {
const { loading, users } = this.state;
if ( loading ) {
return (
<View style={ styles.container }>
<Text>Por Favor espere... </Text>
</View>
);
}
return <View>
<FlatList
data={ users }
renderItem={({ item }) => <Text>{item.name}</Text>}
/>
</View>;
}
}