React Native TapGestureHandler未触发onHandlerStateChange

jyztefdp  于 2023-04-22  发布在  React
关注(0)|答案(2)|浏览(143)

我在TapGestureHandler中有一个onHandlerStateChange事件。当onHandlerStateChange被触发时,我想改变TapGestureHandler中一个按钮的不透明度。

<View style={{ height: height / 3, justifyContent: 'center' }}>
  <TapGestureHandler onHandlerStateChange={ this.onStateChange }>
    <Animated.View 
        style={{ ...styles.button, opacity: this.buttonOpacity }}>
      <Text style= {{ fontSize:16, fontWeight: 'bold' }}>GET STARTED</Text>
    </Animated.View>
  </TapGestureHandler>        
</View>

this.onStateChange中,我有以下代码来更改不透明度。

constructor(props) {
    super(props);
    this.state={
    }
    this.buttonOpacity = new Value(1)
    this.onStateChange = event([{
      nativeEvent: ({ state }) => 
      block([
        cond( eq(state, State.END), set(this.buttonOpacity, 0) )
      ])
    }])
  }

即时通讯使用Android Studio模拟器,并试图运行Android应用程序使用react-native run-android,也导入

import Animated from 'react-native-reanimated'
import {TapGestureHandler, State} from 'react-native-gesture-handler'

我是一个初学者React Native编程。

wljmcqd8

wljmcqd81#

修复(请按照步骤操作)
使用MainActivity.java以下代码更新www.example.com
//不要忘记导入

import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactRootView;
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;

//将下面的方法添加到主活动类中

protected ReactActivityDelegate createReactActivityDelegate() {
    return new ReactActivityDelegate(this, getMainComponentName()) {
      @Override
      protected ReactRootView createRootView() {
        return new RNGestureHandlerEnabledRootView(MainActivity.this);
      }
    };
  }
h79rfbju

h79rfbju2#

我在使用react-native-vision-camera的示例代码时也遇到了这个问题。它的react-native-gesture-handler版本是1.10.3。但我安装了最新版本。我检查了文档的迁移页面,并在顶部添加了GestureHandlerRootView而不是View。没有任何其他更改,它工作了!

相关问题