Я проследовал за документом и попытался вызвать ToastExample.show () из собственного кода реакции.Но это всегда показывает ошибка
Мой код:
открытый класс CustomToastPackage реализует ReactPackage {
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
return Collections.emptyList();
}
@Override
public List<NativeModule> createNativeModules(
ReactApplicationContext reactContext) {
List<NativeModule> modules = new ArrayList<>();
modules.add(new ToastModule(reactContext));
return modules;
}
}
public class ToastModule extends ReactContextBaseJavaModule {
private static final String DURATION_SHORT_KEY = "SHORT";
private static final String DURATION_LONG_KEY = "LONG";
public ToastModule(ReactApplicationContext reactContext) {
super(reactContext);
}
@Override
public String getName() {
return "ToastExample";
}
@Override
public Map<String, Object> getConstants() {
final Map<String, Object> constants = new HashMap<>();
constants.put(DURATION_SHORT_KEY, Toast.LENGTH_SHORT);
constants.put(DURATION_LONG_KEY, Toast.LENGTH_LONG);
return constants;
}
@ReactMethod
public void show(String message, int duration) {
Toast.makeText(getReactApplicationContext(), message, duration).show();
}
}
MainApplication.Java:
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new ReanimatedPackage(),
new VectorIconsPackage(),
new RNGestureHandlerPackage(),
new CustomToastPackage(),
new RNSharedPreferencesReactPackage()
);
}
ToastExample.js:
import {NativeModules} from 'react-native';
module.exports = NativeModules.ToastExample;
На моем экране:
import ToastExample from './ToastExample'
ToastExample.show('Awesome', ToastExample.SHORT);
Я пыталсязапустить-андроид и ./gradlew почистить много раз.Что не так с кодом?