【发布时间】:2019-03-17 06:26:35
【问题描述】:
import React from 'react';
import Login from '../Login/Login';
const Authenticate = App => {
return class extends React.Component {
constructor() {
super();
this.state = {
loggedIn: false
};
}
componentDidMount() {
localStorage.getItem('username') ?
this.setState({
loggedIn: true
}) :
null;
}
render() {
return this.state.loggedIn === false ? < Login / > : < App / > ;
}
};
};
export default Authenticate;
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
【问题讨论】:
-
你真的可以这样写 JSX 吗?我认为它需要是
<Login />和<App />。另外,为什么会滥用条件运算符?在componentDidMount中使用if。 -
出于某种原因,我认为“整洁”添加了一些奇怪的间距......我一般不会这样间隔。
-
哦,这是一个eslint错误,不是语法错误。使用
if语句将修复它。 -
我将它重构为一个 if 语句,仍然得到同样的错误.. 很奇怪..
-
请显示您将其更改为的内容。
标签: javascript reactjs