Reactjs ReferenceError:未定义存储
我是React的新手,正在尝试从网络资源中学习。我在网上找到了MERN完整的登录代码。当我尝试使用npm start编译时,它没有问题,但是当我尝试使用npm test编译时,它会给出错误“ReferenceError:localStorage未定义” 我试图声明localStorage的任何变量,但也得到了类似的错误。似乎我需要把值放在某个地方,但为什么它只在npm测试中给出一个错误Reactjs ReferenceError:未定义存储,reactjs,react-router-dom,Reactjs,React Router Dom,我是React的新手,正在尝试从网络资源中学习。我在网上找到了MERN完整的登录代码。当我尝试使用npm start编译时,它没有问题,但是当我尝试使用npm test编译时,它会给出错误“ReferenceError:localStorage未定义” 我试图声明localStorage的任何变量,但也得到了类似的错误。似乎我需要把值放在某个地方,但为什么它只在npm测试中给出一个错误 这是因为localStorage在测试环境JSDOM中不起作用。 您可以查看此错误位于第`{localStor
这是因为localStorage在测试环境JSDOM中不起作用。
您可以查看此错误位于第`{localStorage.usertoken?userLink:loginRegLink}`行,如果您是指来自浏览器locastorage的usertoken,请尝试以下操作:localStorage.getItem'usertoken'这是否回答了您的问题@是的,我知道这是一个错误,但如何解决这个问题,我已经尝试了localStorage.getItem'usertoken',但问题仍然存在remain@Wenfeng它的代码似乎是正确的。它在这里工作哦,真的吗?它似乎在我们的工作没有问题。
"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)