在我保存代码的网站页面上说:A可能只有一个子元素时,我在React.js中遇到问题
问题出在哪里,我该如何解决?
谢谢
import React, { Component } from 'react';
import Head from './component/head';
import Contacts from './component/contacts';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'
import Addcontacts from './component/Addcontacts';
import { Provider } from "./context";
import 'bootstrap/dist/css/bootstrap.min.css';
class App extends Component {
render() {
return (
<Provider>
<Router>
<Head promo = 'alow' />
<div className='container'>
<Switch>
<Route exact path='/' Component={Contacts} />
<Route exact path='/add' Component={Addcontacts} />
</Switch>
</div>
</Router>
</Provider>
);
}
}
export default App;
答案 0 :(得分:0)
您可以使用React.Fragment https://reactjs.org/docs/fragments.html#short-syntax来解决此问题。
<Router>
<>
<Head promo = 'alow' />
<div className='container'>
<Switch>
<Route exact path='/' Component={Contacts} />
<Route exact path='/add' Component={Addcontacts} />
</Switch>
</div>
</>
</Router>
因此基本上,您小的时候只需要一个标签即可。
答案 1 :(得分:0)
像这样在您的<Router>
内将所有内容包装在一个<div>
中
<Router>
<div>
// all your content
</div>
</Router>
答案 2 :(得分:0)
路由器期望this.props.children
为空或长度等于 1
您的情况超过1
因此,如果您包装所有属性。在单个标签内应该可以正常工作
您可以使用任何这些
<> => React.Fragment
<div> => DIV
例如:
class App extends Component {
render() {
return (
<Provider>
<Router>
<div>
<Head promo = 'alow' />
<div className='container'>
<Switch>
<Route exact path='/' Component={Contacts} />
<Route exact path='/add' Component={Addcontacts} />
</Switch>
</div>
</div>
</Router>
</Provider>
);
}
}