Я новичок ie в React и пытаюсь учиться на веб-ресурсах. Я нашел MERN полный код логина в сети. Когда я пытаюсь скомпилировать, используя npm start
, у него нет проблем, однако, когда я пытаюсь скомпилировать, используя npm test
, он выдает ошибку 'ReferenceError: localStorage не определено'
Я пытался объявить любую переменную localStorage
но также получаю аналогичную ошибку. Кажется, мне нужно где-то поместить значение, но почему оно выдает ошибку только на npm test
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
import React, { Component } from 'react'
import { Link, withRouter } from 'react-router-dom'
class Landing extends Component {
logOut(e) {
e.preventDefault()
localStorage.removeItem('usertoken')
this.props.history.push(`/`)
}
render() {
const loginRegLink = (
<ul className="navbar-nav">
<li className="nav-item">
<Link to="/login" className="nav-link">
Login
</Link>
</li>
<li className="nav-item">
<Link to="/register" className="nav-link">
Register
</Link>
</li>
</ul>
)
const userLink = (
<ul className="navbar-nav">
<li className="nav-item">
<Link to="/profile" className="nav-link">
User
</Link>
</li>
<li className="nav-item">
<a href="" onClick={this.logOut.bind(this)} className="nav-link">
Logout
</a>
</li>
</ul>
)
return (
<nav className="navbar navbar-expand-lg navbar-dark bg-dark rounded">
<button
className="navbar-toggler"
type="button"
data-toggle="collapse"
data-target="#navbarsExample10"
aria-controls="navbarsExample10"
aria-expanded="false"
aria-label="Toggle navigation"
>
<span className="navbar-toggler-icon" />
</button>
<div
className="collapse navbar-collapse justify-content-md-center"
id="navbarsExample10"
>
<ul className="navbar-nav">
<li className="nav-item">
<Link to="/" className="nav-link">
Home
</Link>
</li>
</ul>
{localStorage.usertoken ? userLink : loginRegLink}
</div>
</nav>
)
}
}
export default withRouter(Landing)