Comments (17)
from realm-js.
Hello everyone, I've tried to figure it out this problem in last days but without success so far. The only thing that did work for me was to modify the code of the module from:
...
get length() {
return this.internal.size();
}
...
to:
...
get length() {
return this.internal ? this.internal.size() : 0;
}
...
in node_modules/realm/dist/bundle.react-native.js file.
Strangely enough, trying the official expo-example (https://github.com/realm/realm-js/tree/main/templates/expo-template), the library does work without issues. I've tried to configure my project with the exact same packages but the issue was still there until I made this change. I don't know if the issue is really code-related, but I think the target file to update to make this change is this one https://github.com/realm/realm-js/blob/v12.0.0/packages/realm/src/Results.ts (lines 78 to 80). Let me know what you think about it.
from realm-js.
Olá a todos, tentei resolver esse problema nos últimos dias, mas sem sucesso até agora. A única coisa que funcionou para mim foi modificar o código do módulo de:
... get length() { return this.internal.size(); } ...
pára:
... get length() { return this.internal ? this.internal.size() : 0; } ...
no arquivo node_modules/realm/dist/bundle.react-native.js. Estranhamente, tentando o expo-example oficial ( https://github.com/realm/realm-js/tree/main/templates/expo-template ), a biblioteca funciona sem problemas. Tentei configurar meu projeto exatamente com os mesmos pacotes, mas o problema ainda persistia até que fiz essa alteração. Não sei se o problema está realmente relacionado ao código, mas acho que o arquivo de destino está atualizado para fazer essa alteração é este https://github.com/realm/realm-js/blob/v12.0.0/packages /realm /src/Results.ts (linhas 78 a 80). Deixe-me saber o que você pensa sobre isso.
solution valid for min using react-native-cli in version v0.74.2 🚀
from realm-js.
➤ PM Bot commented:
Jira ticket: RJS-2805
from realm-js.
@ronkorland Please provide a reproduction case or at least a stack trace.
from realm-js.
@kneth the following stack trace is not enough?
get (Results.js:62)
getOwnPropertyDescriptor (OrderedCollection.js:62)
set (OrderedCollection.js:51)
Results (Results.js:33)
objects (Realm.js:691)
getObjects (index.cjs:151)
anonymous (index.cjs:182)
mountMemo (ReactNativeRenderer-dev.js:11819)
useMemo (ReactNativeRenderer-dev.js:12275)
useMemo (react.development.js:1650)
useQuery (index.cjs:181)
RealmDbPage (MainPage.tsx:30)
renderWithHooks (ReactNativeRenderer-dev.js:10867)
mountIndeterminateComponent (ReactNativeRenderer-dev.js:14789)
beginWork (ReactNativeRenderer-dev.js:16628)
beginWork$1 (ReactNativeRenderer-dev.js:22324)
performUnitOfWork (ReactNativeRenderer-dev.js:21471)
workLoopSync (ReactNativeRenderer-dev.js:21398)
renderRootSync (ReactNativeRenderer-dev.js:21369)
performSyncWorkOnRoot (ReactNativeRenderer-dev.js:21020)
flushSyncCallbacks (ReactNativeRenderer-dev.js:6262)
flushSyncCallbacksOnlyInLegacyMode (ReactNativeRenderer-dev.js:6241)
batchedUpdates$1 (ReactNativeRenderer-dev.js:21076)
batchedUpdates (ReactNativeRenderer-dev.js:2750)
_receiveRootNodeIDEvent (ReactNativeRenderer-dev.js:2892)
receiveTouches (ReactNativeRenderer-dev.js:3012)
__callFunction (MessageQueue.js:433)
anonymous (MessageQueue.js:113)
__guard (MessageQueue.js:365)
callFunctionReturnFlushedQueue (MessageQueue.js:112)
from realm-js.
I have the same issue. Seems to have happened after upgrading to react-native 0.74.
from realm-js.
I'm using react-native
: 0.73.6
but I have the same issue
from realm-js.
I'm using
react-native
:0.73.6
but I have the same issue
do you have this@babel/plugin-transform-private-methods
in your babel config? That seems to have been the cause, at least it was for me.
I fixed it by removing it and adding this to my config instead:
overrides: [
{
exclude: /node_modules\/realm\//,
plugins: [['@babel/plugin-transform-private-methods', { loose: true }]],
},
],
from realm-js.
I'm using
react-native
:0.73.6
but I have the same issuedo you have this
@babel/plugin-transform-private-methods
in your babel config? That seems to have been the cause, at least it was for me.I fixed it by removing it and adding this to my config instead:
overrides: [ { exclude: /node_modules\/realm\//, plugins: [['@babel/plugin-transform-private-methods', { loose: true }]], }, ],
Thanks for reply, me babel config looks like this:
module.exports = {
presets: [["module:@react-native/babel-preset"]],
env: {
production: {
plugins: ["react-native-paper/babel"],
},
},
plugins: [
"@realm/babel-plugin",
"babel-plugin-transform-typescript-metadata",
["@babel/plugin-proposal-decorators", { legacy: true }],
["@babel/plugin-transform-class-properties", { loose: true }],
["@babel/plugin-transform-private-property-in-object", { loose: true }],
],
overrides: [
{
exclude: /node_modules\/realm\//,
plugins: [["@babel/plugin-transform-private-methods", { loose: true }]],
},
],
};
But I still have the same error.
from realm-js.
did you reset the cache after editing the config file?
react-native start --reset-cache
from realm-js.
@Mitch528 I try now with the reset cache but I still have the same error
from realm-js.
Hello @ronkorland did you happen to resolve this issue?
from realm-js.
Hello. Is any update on this issue?
from realm-js.
Hello. After upgrading react-native from 0.73.5
to 0.74.1
I encounter the same error. My error was because of module:metro-react-native-babel-preset
from babel config preset instead of module:@react-native/babel-preset
. No need to install @babel/plugin-transform-private-methods
package because is installed as dependency from @babel/preset-env
.
package.json:
{
"name": "Test",
"version": "0.0.1",
"private": true,
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"lint": "eslint .",
"start": "react-native start",
"test": "jest"
},
"dependencies": {
"react": "18.2.0",
"react-native": "0.74.1",
"realm": "12.6.2"
},
"devDependencies": {
"@babel/core": "^7.20.0",
"@babel/preset-env": "^7.20.0",
"@babel/runtime": "^7.20.0",
"@react-native/babel-preset": "0.74.83",
"@react-native/eslint-config": "0.74.83",
"@react-native/metro-config": "0.74.83",
"@react-native/typescript-config": "0.74.83",
"@types/react": "^18.2.6",
"@types/react-test-renderer": "^18.0.0",
"babel-jest": "^29.6.3",
"eslint": "^8.19.0",
"jest": "^29.6.3",
"prettier": "2.8.8",
"react-test-renderer": "18.2.0",
"typescript": "5.0.4"
},
"engines": {
"node": ">=18"
}
}
babel.config.js:
module.exports = {
presets: ['module:@react-native/babel-preset'],
};
from realm-js.
@davide-ciraolo You have a couple of interesting observations, and I am curious to understand the impact of Babel is (#6626 (comment) is hinting that Babel might have a negative impact). Can you share your Babel configuration?
from realm-js.
Hello @kneth yesterday after putting in place my "temporary fix" I continued developing my application and had another problem with the FlastList component that I ended up fixing following this answer: facebook/react-native#36828 (comment). Today I removed my "temporary fix" and after resetting the cache with npx expo start --reset-cache
I tested the app again, and Realm worked without problems.
Probably, this means that installing @babel/plugin-transform-flow-strip-types
(with npm install @babel/plugin-transform-flow-strip-types --save-dev
or yarn add -D @babel/plugin-transform-flow-strip-types
) and putting it on the first line of babel plugins configuration fixed this issue. Here is my actual babel configuration:
module.exports = function(api) {
api.cache(true);
return {
presets: ['babel-preset-expo'],
plugins: [
'@babel/plugin-transform-flow-strip-types',
["@babel/plugin-transform-private-methods", { "loose": true }],
["@babel/plugin-transform-class-properties", { "loose": true }],
["@babel/plugin-transform-private-property-in-object", { "loose": true }],
"@realm/babel-plugin", ["@babel/plugin-proposal-decorators", { legacy: true}],
[
'module-resolver',
{
alias: {
'rn-crypto': 'react-native-quick-crypto',
'stream': 'stream-browserify',
'buffer': '@craftzdog/react-native-buffer',
}
}
]
]
};
};
I hope it will be helpful for anyone having the same issue, although I'm not sure what's going on with babel under the hood. In fact, the expo-realm example works without using the @babel/plugin-transform-flow-strip-types
as you can see in the example's babel configuration:
module.exports = function (api) {
api.cache(true);
return {
presets: ["babel-preset-expo"],
plugins: ["@realm/babel-plugin", ["@babel/plugin-proposal-decorators", { legacy: true }]],
};
};
from realm-js.
Related Issues (20)
- Support "bridgeless" mode by exposing a TurboModule on iOS HOT 1
- UserProvider doesn't unmount Login-Component HOT 7
- SDKs should not consume stitch_ prefixed fields HOT 1
- Unable to resolve module node:os HOT 5
- Unable to load an existing partition based local database (back of synced realm) to new flexible sync realm HOT 2
- relationships create whole object in realm list instead having reference HOT 1
- Realm app fails to authenticate users when running on Android emulator HOT 1
- Error when building the Android binding with an unexpected NDK HOT 1
- Refactor `ProgressRealmPromise` to register progress notifier only if needed HOT 1
- useObject and reinsertion item HOT 2
- Initializing a named sync Subscription leads to "undefined" HOT 3
- Major Bug: Documents and what library having is different with Listeners HOT 7
- SigSev Android 14 React Native 0.74.1 HOT 1
- Remove `use_frameworks` hack from Podspec HOT 1
- Upgrade to Realm Core v14.9.0 HOT 1
- NPM Always ask to install [email protected] instead of [email protected] ( in package.json ) HOT 2
- Unable to handle a manual client reset due to a missing function HOT 1
- logInWithFacebook is not working with iOS Limited Login HOT 1
- Run bindgen with symbols missing from opt-in list removed HOT 1
- Issue building for ARM/Linux HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from realm-js.