reactjs - 在 React 中有条件地渲染
问题描述
我想根据用户是否登录来呈现两个完全独立的组件。这是我的代码,
import React, {Component} from 'react';
import ContainerLogged from './components/logged/ContainerLogged'
import ContainerUnlogged from './components/unlogged/ContainerUnlogged'
class App extends Component {
constructor(props){
super(props)
this.state = {isLoggedIn : false}
}
render(){
const comp = this.state.isLoggedIn ? (
<ContainerLogged />
): (
<ContainerUnlogged />
);
return (
{comp}
);
}
}
export default App;
这是我的 index.js
import 'normalize.css';
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import registerServiceWorker from './registerServiceWorker';
ReactDOM.render(<App />, document.getElementById('root'));
registerServiceWorker();
我收到以下错误,
Objects are not valid as a React child (found: object with keys {comp}). If you meant to render a collection of children, use an array instead.
in App (at index.js:8)
我是 React 的新手,因此不明白这里发生了什么。
解决方案
代替
return (
{comp}
);
尝试
return comp;
推荐阅读
- java - 类和对象之间的编码差异
- python - 在 BeautifulSoup (Python) 中找不到亚马逊重定向的 url。从哪里获得重定向网址的任何想法?
- html - Xslt在不同语言的不同规则的字符串之间获取文本
- c# - 如何在 Windows 窗体 C# 中一次将两个文件发布到 API
- javascript - XSS 黑名单/白名单
- grafana - 无法在 Grafana 4.5.2 中管道模板变量
- reporting-services - 将参数传递给报告 URL - power bi 服务中的 ssrs 报告
- javascript - javascript中的最大堆?
- c# - C# 中的毫秒数 - long 还是 int?
- node.js - 如何使用“限制为 1 个响应”提交 Google 表单并绕过登录?