我有一个父组件app.js
import React, { Component } from 'react'
import { Route, Link, BrowserRouter, HashRouter} from 'react-router-dom'
//import BrowserHistory from 'react-router/lib/BrowserHistory'
import {Scholarships} from './scholarships'
class App extends Component {
render() {
return (
<div>
<HashRouter>
<div>
<Route exact path='/' component={Home} />
<Route path='/hello' component={Hello} />
<Route path='/scholarship' component={Scholarships} />
</div>
<Scholarships />
</HashRouter>
</div>
)
}
}
const Home = () => <h1> Hello from home! </h1>
const Hello = () => <h2> Hello React </h2>
export default App
还有一个子组件,名为scholarships.js
import React, {Component} from 'react'
import Request from 'react-http-request' //`https://www.npmjs.com/package/react-http-request`
class Scholarships extends Component {
constructor(props) {
super(props);
}
render() {
return (
<Request
url = 'https://api.github.com/users/mbasso'
method = 'get'
accept = 'application/json'
verbose = {true}
>
{
({error, result, loading}) => {
if(loading) {
return <div id="scholarships"> loading... </div>;
}
else {
return <div id="scholarships"> { JSON.stringify(result) }</div> ;
}
}
}
</Request>
)
}
}
export default Scholarships
它正在抛出错误警告:React.createElement:type无效--应为字符串(对于内置组件)或类/函数(对于复合组件),但Get:undefined。您可能忘记了从定义组件的文件中导出组件。检查App
的渲染方法。bundle.js:357:9和Error:A可能只有一个子元素,我刚从react开始,所以这可能是一个noob问题,但如果我通过
此外,我也试过
const奖学金=()=
我还想知道我的奖学金组件是返回纯JSON. Stringify文本,那么为什么它仍然是引用
const奖学金的错误的对象 = () =
我的main.js档案
import React from 'react'
import ReactDOM from 'react-dom'
import App from './app'
import Scholarships from './scholarships'
ReactDOM.render(<App />, document.getElementById('root'))
这样写:
<HashRouter>
<div>
<Route exact path='/' component={Home} />
<Route path='/hello' component={Hello} />
<Route path='/scholarship' component={Scholarship} />
</div>
<Scholarships />
</HashRouter>
原因:React组件不能返回多个React
元素,但单个JSX
表达式可以有多个子元素,因此如果希望组件呈现多个内容,可以将它们包装在div
中。
不要忘记,render()
函数正是一个函数。函数总是接受多个参数,并且总是只返回一个值。
更新:
按如下方式渲染管线,它将起作用:
ReactDOM.render(
<HashRouter>
<div>
<Route exact path='/' component={Home} />
<Route path='/hello' component={Hello} />
<Route path='/scholarship' component={Scholarships} />
</div>
<Scholarships />
</HashRouter>,
document.getElementbyId('root')
)
问题内容: 预期 我应该能够导出我的App组件文件并将其导入到index.js中。 结果 我收到以下错误 React.createElement:类型无效-预期为字符串(对于内置组件)或类/函数(对于复合组件),但得到了:对象 我的index.js 然后在我的components / App.js中 如果我取消注释,它将起作用,但是我正在尝试使用导出语法。让我发疯的是在另一个项目中,我在这里做的完
我得到上述错误,而我试图运行我的应用程序。 编辑:添加代码 应用程序。js 登录。js 我不知道这些文件中的哪一个产生了错误。 为了模拟这些代码,我还在世博会上主持我的代码。木卫一 https://snack.expo.io/@wilson382/我的第一款手机应用
我正在做一些关于React的教程。js和我对这是相当陌生的。我在仪表板上有这个代码。js 有问题的代码行如下:- 如果我设置newChatFormbVisible:false,我不会得到错误,但是将其设置为true会失败,并出现以下错误:- 指数js:1375警告:反应。createElement:type无效--应为字符串(对于内置组件)或类/函数(对于复合组件),但应为Get:object。您
问题内容: 我收到此错误: 未捕获的错误:始终违反:元素类型无效:预期为字符串(对于内置组件)或类/函数(对于复合组件),但得到了:对象。 这是我的代码: 我的档案: 问题答案: 就我而言( 使用Webpack )是以下两者之间的区别: 与 第二个起作用,而第一个引起错误。或相反。
Reactjs上下文提供程序错误 我得到以下错误 不变的js:42未捕获错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象。 这里是我的 这里是: 这是在反应16.3.2。有许多情况下,错误是由于默认与命名的出口,这似乎不是: 未捕获错误:不变冲突:元素类型无效:应为字符串(用于内置组件)或类/函数,但得到:object
我得到这个错误: 未捕获错误:不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象检查的呈现方法。 这是我的应用程序。js 这是我的页面包装: 请帮忙!