ReferenceError:找不到变量:False - React Native(Hookstate)
2021-06-18
1279
在我的 React Native 代码中,我一直使用 Hookstate 作为状态管理器(在本例中用于查看用户是否已登录)。虽然我的身份验证流程在点击登录按钮后确实会显示主页一秒钟,但随后会弹出错误(如标题所示)。
以下是我对 Hookstate 状态的实现:
import { createState, useState } from "@hookstate/core"
const globalIsLoggedIn = createState(false)
export function useGlobalIsLoggedIn(){
const state = useState(globalIsLoggedIn)
return ({
get isLoggedInVal(){
return state.value
},
setTrue(){
state.set(true)
},
setFalse(){
state.set(false)
}
})
}
export function accessGlobalIsLoggedIn(){
return ({
setTrue(){
globalIsLoggedIn.set(true)
},
setFalse(){
globalIsLoggedIn.set(false)
}
})
}
以下是我对 App.js 的实现:
import React from 'react';
import { SignUpScreen } from './src/SignUpScreen/signUp.js'
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import { LoginScreen } from './src/LoginScreen/login.js';
import { useGlobalIsLoggedIn, useGlobalState } from './src/loggedIn.js';
import { HomeScreen } from './src/HomeScreen/HomeScreen'
const Stack = createStackNavigator();
export default function App() {
const isLoggedIn = useGlobalIsLoggedIn()
return (
<NavigationContainer>
<Stack.Navigator headerMode="none">
{
isLoggedIn.isLoggedInVal ? (
<Stack.Screen name="Home" component={HomeScreen} />
) : (
<>
<Stack.Screen name="SignIn" component={SignUpScreen} />
<Stack.Screen name="Login" component={LoginScreen} />
</>
)
}
</Stack.Navigator>
</NavigationContainer>
);
}
但是,当我运行应用程序并更新全局状态(发生在不同的文件中)时,我会看到主页一秒钟,然后出现异常“ReferenceError:找不到变量:False”。
任何帮助都将不胜感激。
1个回答
Hookstate 的作者在这里。您的代码中某处有语法错误。
False
(以大写 F 开头)不是 JS 中定义的变量/值,除非您自己在某处定义它(这不是一个好主意)。我没有看到您在代码示例中引用
False
的位置,因此请搜索更广泛的代码库。
Andrew
2021-06-22