Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Gatsby.js生成错误:webpackeror:TypeError:无法对属性进行解构';用户';属于';对象(…)(…)和#x27;因为它是空的_Javascript_Reactjs - Fatal编程技术网

Javascript Gatsby.js生成错误:webpackeror:TypeError:无法对属性进行解构';用户';属于';对象(…)(…)和#x27;因为它是空的

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

我完成了我的第一个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 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);