Recibo un error cuando quiero exportar una configuración de dominio predeterminada useRealm
para poder usarla en otros archivos
import Realm from "realm"; import { getRealmApp } from "../functions/realmConfig"; import { ItemSchema } from "./itemSchema"; export const app = getRealmApp(); export const useRealmApp = getRealmApp(); export const user = useRealmApp.currentUser; export const partitionValue = useRealmApp.currentUser.id; export const config = { schema: [ItemSchema], //other schema will be added in the future sync: { user: user, partitionValue: partitionValue, //app.currentUser.id, }, }; export const useRealm = new Realm(config);
los resultados esperados son, si el usuario no ha iniciado sesión, debería mostrar una pantalla de inicio de sesión. Pero arroja este error y no me da la oportunidad de iniciar sesión:
index.ts?77fd:9 Uncaught TypeError: Cannot read property 'id' of null at eval (index.ts?77fd:9) at Object../src/realm/index.ts (renderer.js:5394) at __webpack_require__ (renderer.js:791) at fn (renderer.js:102) at eval (testIndex.tsx?956d:10) at Object../testIndex.tsx (renderer.js:5438) at __webpack_require__ (renderer.js:791) at fn (renderer.js:102) at eval (App.tsx?d35d:4)
probablemente use (agregue signos de interrogación)
useRealmApp?.currentUser?.id
Porque si no ha iniciado sesión, useRealmApp.currentUser no está definido/es nulo, por lo tanto, no puede leer .id
.
Sin embargo, no parece ser la forma correcta de trabajar con React Native, probablemente debería crear una tienda (redux/useContext), luego monitorear su inicio/cierre de sesión de usuario y actualizar sus estados de usuario/partición.
Prueba esto, pero no estoy seguro de si funcionará
const user: any = Realm.User; export const useRealm = Realm.open({ schema: [ItemSchema], sync: { user: user.prototype, partitionValue: app.currentUser?.id!, error: (e) => { console.log(e); }, }, });