Пример:
React Native:
Код: Выделить всё
const {add} = NativeModules.MyModule;
add(); // param not set
Код: Выделить всё
fun add(data: String?) {}
Код: Выделить всё
fun add(data: Double?) {}
Код: Выделить всё
com.facebook.react.bridge.NativeArgumentsParseException: Attempt to invoke virtual method 'double java.lang.Double.doubleValue()' on a null object reference (constructing arguments for MyModule.add at argument index 0)
В качестве обходного пути я мог бы использовать ReadableMap и поместить в него все, что работает нормально. Однако меня смущает, почему необязательные параметры String поддерживаются, а необязательные параметры Double — нет. Это заставляет меня задуматься, не делаю ли я что-то не так.
EDIT: Протестировано с помощью React Native 73.6 и 75.2 (последняя версия)
EDIT2: Я Я рассмотрел 3 популярных пакета. Все используют необязательные параметры String, но никогда необязательные Double, Boolean и т. д. Вроде все об этом знают, но не жалуются. Как упоминалось выше, сейчас я буду использовать ReadableMap во всем.
Подробнее здесь: https://stackoverflow.com/questions/789 ... dge-kotlin