useContext 在这里工作正常,屏幕更改之前的 console.log 按预期工作并为我提供用户对象(只需复制/粘贴相关信息以节省您的时间)
import React, { useContext, useState, useEffect } from "react";
import { AuthContext } from "./AuthProvider";
const Routes = () => {
const { user, setUser } = useContext(AuthContext);
const [initializing, setInitializing] = useState(true);
const onAuthStateChanged = (user) => {
setUser(user);
if (initializing) setInitializing(false);
};
useEffect(() => {
const subscriber = auth().onAuthStateChanged(onAuthStateChanged);
return subscriber; //unsub @ unmount
}, []);
if (initializing) {
return null;
}
// console.log(user) //we have access to the user obj here w/out issues …Run Code Online (Sandbox Code Playgroud) reactjs react-native firebase-authentication expo use-context
我正在构建一个简单的多活动列表应用程序来练习 SQLite。我试图从数据库中获取字符串以在listview启动时显示。我收到错误
\n\n\njava.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 \'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()\'
\n
这是代码
\n\npublic class MainActivity extends AppCompatActivity {\n SharedPreferences sharedPreferences;\n ArrayList<String> listItem;\n ArrayAdapter adapter;\n ListView lv = (ListView) findViewById(R.id.list_view);\n DatabaseHelper db = new DatabaseHelper(this);\n Context context;\n\n @Override\n protected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.activity_main);\n Toolbar toolbar = findViewById(R.id.toolbar);\n setSupportActionBar(toolbar);\n listItem = new ArrayList<>();\n viewData();\n context = this;\n\n FloatingActionButton fab = findViewById(R.id.fab);\n fab.setOnClickListener(new View.OnClickListener() {\n @Override\n public void onClick(View view) {\n startActivity(new Intent(MainActivity.this, textInput.class));\n }\n });\n }\n\n // cast from …Run Code Online (Sandbox Code Playgroud) android ×1
database ×1
expo ×1
java ×1
listview ×1
react-native ×1
reactjs ×1
sqlite ×1
use-context ×1