richardvclam / react-native-resegmented-control

iOS 13+ styled segmented control for React Native
58 stars 6 forks source link

Reanimated.useCode executes every frame? #17

Open Noitidart opened 3 years ago

Noitidart commented 3 years ago

Does this code execute every frame?

https://github.com/richardvclam/react-native-resegmented-control/blob/master/src/SegmentedControl/SegmentedControl.tsx#L95-L108

So maybe we need to change it to something like this pseudocode:

const curSliderPosition = Reanimated.useValue(0);
useCode(() => {
  // cond(neq(curSliderPosition, _sliderPosition), set(curSliderPosition, _sliderPosition))
  if (curSliderPosition !== _sliderPosition) {
    Reanimated.set(curSliderPosition, _sliderPosition);
    Reanimated.timing(start it)
  }
});

useEffect(() => {
  const nextSliderpostion = 000; // calcluate me
  Reanimated.set(_sliderPosition, nextSliderPostion);
}, [_activeName]);