#react-native #react-native-gesture-handler #react-native-modalize
#react-native #react-native-gesture-handler #react-native-modalize
Вопрос:
Я использую RN Modalize, и у меня было несколько проектов с использованием react-native-modalize
библиотеки, и пока никаких проблем. но на этот раз я создал новый проект и следовал инструкциям по применению react-native-modalize
, но получаю ошибку, подобную этому изображению
Здесь мой Login.js :
import React, {useRef} from 'react';
import {
ImageBackground,
StyleSheet,
Text,
TouchableOpacity,
View,
} from 'react-native';
import {Modalize} from 'react-native-modalize';
import {login_bottom, login_top} from '../assets';
import {colors} from '../constants';
const Login = ({navigation}) => {
const modalizeRef = useRef(null);
const onPressLogin = () => {
modalizeRef.current?.open();
};
return (
<>
<Modalize ref={modalizeRef}></Modalize>
<View style={styles.container}>
<View style={{flex: 1, justifyContent: 'space-around'}}>
<ImageBackground
source={login_top}
style={{
width: null,
height: '100%',
}}
/>
</View>
<View style={{flex: 1, justifyContent: 'space-around'}}>
<View style={styles.containerLogin}>
<TouchableOpacity style={styles.loginButton} onPress={onPressLogin}>
<Text style={styles.loginButtonText}>LOGIN</Text>
</TouchableOpacity>
</View>
</View>
<View style={{flex: 1, justifyContent: 'space-around'}}>
<ImageBackground
source={login_bottom}
style={{
width: null,
height: '105%',
}}
/>
</View>
</View>
</>
);
};
Здесь мой index.js :
/**
* @format
*/
import {AppRegistry} from 'react-native';
import App from './src/App';
import {name as appName} from './app.json';
import {gestureHandlerRootHOC} from 'react-native-gesture-handler';
AppRegistry.registerComponent(appName, () => gestureHandlerRootHOC(App));
Здесь мой MainActivity.java:
package com.backbone;
import com.facebook.react.ReactActivity;
import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactRootView;
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
public class MainActivity extends ReactActivity {
/**
* Returns the name of the main component registered from JavaScript. This is
* used to schedule
* rendering of the component.
*/
@Override
protected String getMainComponentName() {
return "BackBone";
}
@Override
protected ReactActivityDelegate createReactActivityDelegate() {
return new ReactActivityDelegate(this, getMainComponentName()) {
@Override
protected ReactRootView createRootView() {
return new RNGestureHandlerEnabledRootView(MainActivity.this);
}
};
}
}
И это моя зависимость :
"react": "16.13.1",
"react-native": "0.63.4",
"react-native-gesture-handler": "^2.0.0",
"react-native-modalize": "^2.0.12",
Ответ №1:
в настоящее время react-native-modalize не создан для поддержки версии v2 обработчика жестов react-native.
На Github открыт PR: https://github.com/jeremybarbet/react-native-modalize/pull/375
Нам нужно подождать, пока это не будет исправлено. Тем временем вы понижаете версию своего обработчика жестов react-native
Комментарии:
1. Да, я открываю проблему на github github.com/jeremybarbet/react-native-modalize/issues/374