Javascript Gatsby.js生成错误:webpackeror:TypeError:无法对属性进行解构';用户';属于';对象(…)(…)和#x27;因为它是空的
我完成了我的第一个gatsby.js项目,它在“gatsby develope”下无误运行。 但是,当我以以下方式运行build命令时: “盖茨比清洁和盖茨比建造”,我得到以下错误:Javascript Gatsby.js生成错误:webpackeror:TypeError:无法对属性进行解构';用户';属于';对象(…)(…)和#x27;因为它是空的,javascript,reactjs,Javascript,Reactjs,我完成了我的第一个gatsby.js项目,它在“gatsby develope”下无误运行。 但是,当我以以下方式运行build命令时: “盖茨比清洁和盖茨比建造”,我得到以下错误: failed Building static HTML for pages - 3.164s ERROR #95313 Building static HTML failed for path "/lectures/lecture" See our docs page for more
failed Building static HTML for pages - 3.164s
ERROR #95313
Building static HTML failed for path "/lectures/lecture"
See our docs page for more info on this error: https://gatsby.dev/debug-html
4 |
5 | const Links = ({ styleClass, active, children }) => {
> 6 | const { user, setUser } = useContext(UserContext);
| ^
7 |
8 | let loggedInMenus = false;
9 |
WebpackError: TypeError: Cannot destructure property 'user' of 'Object(...)(...)' as it is null.
- links.js:6 Links
src/constants/links.js:6:11
not finished Generating image thumbnails - 22.034s
这是我的link.js
import React, { useContext } from 'react';
import { UserContext } from '../context/UserContext';
import { Link } from "gatsby"
const Links = ({ styleClass, active, children }) => {
const { user, setUser } = useContext(UserContext);
let loggedInMenus = false;
if (user && user.user.is_active) {
loggedInMenus = true;
}
return (
<ul className={styleClass}>
<li>
<Link to="/" className="page-link" active={active}>
Home
</Link>
</li>
<li>
{
(loggedInMenus !== true) ? (<></>) : (
<Link to="/lecture" className="page-link" active={active}>
Lectures
</Link>
)
}
</li>
</ul>
)
}
export default Links
import React,{useContext}来自“React”;
从“../context/UserContext”导入{UserContext};
从“盖茨比”导入{Link}
常量链接=({styleClass,active,children})=>{
const{user,setUser}=useContext(UserContext);
让loggedInMenus=false;
if(user&&user.user.is\u处于活动状态){
loggedInMenus=true;
}
返回(
-
家
-
{
(loggedInMenus!==真)?():(
讲座
)
}
)
}
导出默认链接
在src>context>UserContext.js中,我有一个“用户”状态,最初设置为“null”
import React,{createContext,useState}来自“React”
export const UserContext=createContext(null);
导出默认值({children})=>{
const[user,setUser]=useState(null);
返回(
{儿童}
)
}
我猜它不喜欢“user”值在传递给Provider(?)时为null
您知道如何修复此生成错误吗?您不应该将null作为上下文传递到此行:export const UserContext=createContext(null) 创建默认上下文,如下所示:
const defaultContext = {
user: ''
};
然后将默认contenxt变量分配给createContext():
这应该可以解决问题
const defaultContext = {
user: ''
};
export const UserContext = createContext(defaultContext);