javascript - 如何修复“无法读取未定义的属性”?
问题描述
我该如何解决这个错误?我已经尝试过,但仍然无法做到。
TypeError: Cannot read property 'user' of undefined
App
C:/Users/Bogosyna/Desktop/IT job projects/roro-facebook/src/App.js:11
8 | import {useStateValue} from "./StateProvider";
9 |
10 | function App() {
> 11 | const [{ user }, dispatch] = useStateValue();
12 |
13 | return (
14 | <div className="app">
这是 useStateValue() 的实现
import React, { createContext, useContext, useReducer } from "react";
export const StateContext = createContext();
export const StateProvider = ({ reducer, initialState, children}) => (
<StateContext.Provider value={useReducer(reducer, initialState)}>
{children}
</StateContext.Provider>
);
export const useStateValue = () => useContext(StateContext);
解决方案
您是否尝试过提供initialState
该user
对象?
initialState = {
user: {},
}
然后将其传递给useReducer(reducer, initialState)
.
如果这不是您可以做的事情,那么不要这么早解构用户,有这样的事情:
const [values, dispatch] = useStateValue();
console.log(values.user) // See when the user is available
或为用户提供初始空对象,如下所示:
const [{user} = {}, dispatch] = useStateValue();
推荐阅读
- mysql - 从两个表中获取结果
- postgresql - Golang 并通过 Ubuntu VPS 中的客户端访问 postgres?
- php - 如何使 PHP StdClass 反射
- javascript - Javascript:在 Wordpress 中为两个特定网页交换标题徽标
- javascript - 如何修复 Django Rest Framework 应用程序中的“禁止”状态代码
- python - 从 Json 数据中提取信息
- linux-kernel - 如何从内核模块读/写 LAPIC 寄存器?
- python - 在不使用 python name.py 和 ./name 的情况下运行 Python 代码
- swift - Swift for TensorFlow `错误:无法查找符号:TensorFlow.Tensor 的类型元数据访问器`
- kdb - 列出不执行自动展开的附加运算符