代码之家  ›  专栏  ›  技术社区  ›  Mihailo

Expo Go在尝试在Reanimated手势处理程序中更改Zustand Store状态后崩溃

  •  0
  • Mihailo  · 技术社区  · 1 年前

    我正在使用react原生动画库进行手势处理。

    const pan = Gesture.Pan()
          .onChange((e)=>{
            offSetX.value = e.translationX
            
          })
          .onEnd((e)=>{
            if (e.translationX>0){
              screenStore.handleSwipeRight(); //here
            }else if(e.translationX<0){
              screenStore.handleSwipeLeft(); //here
            }
          })
          
    

    当调用这两个标记的函数中的任何一个时,它都会使我的Expo Go模拟崩溃。 事实上,没有任何功能是有效的。

    我有一个特定的逻辑,我想在某些手势结束后打电话。你知道我该怎么做吗?

    0 回复  |  直到 1 年前
        1
  •  0
  •   Eugene Shordukalo    1 年前

    使用 runOnJS

        import { runOnJS } from "react-native-reanimated";
    
        const pan = Gesture.Pan()
          .onChange((e) => {
            offSetX.value = e.translationX
          })
          .onEnd((e) => {
            if (e.translationX > 0) {
              runOnJS(screenStore.handleSwipeRight)(); // <----
            } else if(e.translationX < 0) {
              runOnJS(screenStore.handleSwipeLeft)(); // <----
            }
          })
    
    推荐文章