const [{user},dispatch] =useStateValue()
const login = async () => {
const { user: { refreshToken, providerData } } = await signInWithPopup(firebaseAuth, provider);
dispatch({
type: actionType.SET_USER,
user: providerData[0]
});
undefined 不可迭代(无法读取属性 Symbol(Symbol.iterator)) TypeError: undefined 不可迭代(不能 读取属性 Symbol(Symbol.iterator))
我在第一行遇到错误,我不知道该怎么办?我找不到任何解决方案。
在您共享的第一行代码中,它试图从未定义的初始状态值解构
user
属性。
const [{ user }, dispatch] = useStateValue();
这实际上与
相同const [{ user }, dispatch] = useStateValue(undefined);
const { user } = undefined
每天都会抛出异常。
要修复,您应该只提供可以解构的定义的初始状态。
const [{ user }, dispatch] = useStateValue({});
有了这个,您可以安全地从
user
解构 {}
,并且 user
将具有未定义的值。如果您希望 user
有一些默认值,那么以下任一方法都可以。
const [{ user }, dispatch] = useStateValue({ user: "default value" });
const [{ user = "default value" }, dispatch] = useStateValue({});