Comments (9)
Missing Reproducible Example | |
---|---|
ℹ️ | We could not detect a reproducible example in your issue report. Please provide either:
|
from react-native.
Newer Version of React Native is Available! | |
---|---|
ℹ️ | You are on a supported minor version, but it looks like there's a newer patch available - 0.72.12. Please upgrade to the highest patch for your minor or latest and verify if the issue persists (alternatively, create a new project and repro the issue in it). If it does not repro, please let us know so we can close out this issue. This helps us ensure we are looking at issues that still exist in the most recent releases. |
from react-native.
What is the question @zwyzzu ?
from react-native.
In the JAVA class (RTNCalculatorTurbo extends NativeRTNCalculatorSpec), the getContents method is overridden to return a map (with map.put("valueStr", "valueString")). In 0.64.2, we were able to reference the constant (RTNCalculator.valueStr) normally, but after upgrading to 0.72.5, using RTNCalculator.valueStr shows undefined
from react-native.
In the JAVA class (RTNCalculatorTurbo extends NativeRTNCalculatorSpec), the getContents method is overridden to return a map (with map.put("valueStr", "valueString")). In 0.64.2, we were able to reference the constant (RTNCalculator.valueStr) normally, but after upgrading to 0.72.5, using RTNCalculator.valueStr shows undefined
How does your JS file look like for Calculator?
Can you please provide a valid reproducer?
from react-native.
Java
package com.awesomeproject.turbomodule;
import android.util.Log;
import com.autohome.rnmodule.rtncalculator.NativeRTNCalculatorSpec;
import com.awesomeproject.react.RTNCalculatorModuleImpl;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactMethod;
import java.util.HashMap;
import java.util.Map;
public class RTNCalculatorTurbo extends NativeRTNCalculatorSpec {
private static final String TAG = "yedr.RTNCalculatorTurbo";
private ReactApplicationContext reactContext;
private RTNCalculatorModuleImpl impl;
public RTNCalculatorTurbo(ReactApplicationContext reactContext) {
super(reactContext);
this.reactContext = reactContext;
impl = new RTNCalculatorModuleImpl(reactContext);
}
@ReactMethod
public void add(double a, double b, Promise promise) {
// call Delegate
Log.d(TAG, "[newArch]add");
impl.add(a, b, promise);
}
@OverRide
public boolean hasConstants() {
return true;
}
@OverRide
@ReactMethod(isBlockingSynchronousMethod = true)
public Map<String, Object> getConstants() {
final Map<String, Object> map = new HashMap<>();
map.put("valueStr", "valueString");
return map;
}
@OverRide
public void onCatalystInstanceDestroy() {
impl.onCatalystInstanceDestroy();
}
@OverRide
public void initialize() {
impl.initialize();
}
// @OverRide
// public void invalidate() {
// super.invalidate();
// impl.invalidate();
// }
}
JavaScript
import type {TurboModule} from 'react-native/Libraries/TurboModule/RCTExport';
import {TurboModuleRegistry} from 'react-native';
export interface Spec extends TurboModule {
add(a: number, b: number): Promise;
}
export default TurboModuleRegistry.get(
'RTNCalculator',
) as Spec | null;
Using in JavaScript
import RTNCalculator from 'RTNCalculator/js/NativeRTNCalculator.ts'; // TruboModule
console.log('============' + RTNCalculator.valueStr)
from react-native.
By logging, it was found that the getContents method of RTNCalculatorTurbo was not called.
from react-native.
@cortinico help me
from react-native.
import type {TurboModule} from 'react-native/Libraries/TurboModule/RCTExport'; import {TurboModuleRegistry} from 'react-native';
+export interface SomeConstants {
+ x: string;
+ y: number;
+ z: boolean;
+}
export interface Spec extends TurboModule {
+ getConstants(): SomeConstants
add(a: number, b: number): Promise;
}
export default TurboModuleRegistry.get( 'RTNCalculator', ) as Spec | null;
In order to support Constants with TurboModules, you will have to follow this syntax
from react-native.
Related Issues (20)
- Yarn android HOT 3
- npx [email protected] init cammnd installs the lattest version of react-native HOT 5
- android onScrollEndDrag throttled by scrollEventThrottle HOT 1
- [iOS] VoiceOver reads the placeholder in TextInput HOT 3
- List<ReactPackage> packages = new PackageList(this).getPackages(); [ANDROID] HOT 3
- Experimental debugger does not work on 0.74 with bridgeless on iOS
- [0.74.0] stress reloading leads to broken state on android bridgeless
- onPress work one time only HOT 3
- TypeError: Cannot create property 'lastUpdateCheck' on string 'lastUpdateCheck 1713956001921 nodeLinker node-modules ces nodeLinker node-modules' HOT 4
- Crash - malloc: Heap corruption detected, free list is damaged HOT 2
- [0.74.0] AppState module has an error on android HOT 11
- Emiting Events from Android in New Arch + Bridgeless + interop layer HOT 4
- react native reanimated erro in 0.74 HOT 4
- [0.74] AppRegistry.registerComponent cannot show in a new ReactRooView HOT 1
- use turboModule in app not as a libray in node_modules folder work fail, js file can not find the turboModule HOT 2
- libgojni.so MTE crash (memory unsafe code) HOT 4
- couldn't find DSO to load: libhermes.so SoSource 0: com.facebook.soloader.ApkSoSource HOT 3
- App State 0.74 in DEVELOPMENT HOT 3
- I compare 0.72.5 and 0.74.0 react native android app size,0.74.0 is 50MB,And 0.72.5 is 21.7 MB.How to reduce 0.74.0 android app size? HOT 4
- WebSocket on android works slower than on ios HOT 1
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 react-native.