如何根据 Reanimated 库中的共享值触发 useEffect

dan*_*boy 5 reactjs react-native react-native-reanimated react-native-reanimated-v2

如何根据 Reanimated 库中的共享值触发 useEffect?

 const sharedValue = useSharedValue(0);
  useEffect(() => {
    console.log("exectue functions");
  }, [sharedValue.value]);

Run Code Online (Sandbox Code Playgroud)

有没有这方面的最佳实践。或者是否有另一种方法可以根据共享值的更改来触发函数(同步和异步)。

Enz*_*ano 11

您可以使用:

  1. 使用动画反应;
  2. 使用派生值;

使用useAnimatedReaction的解决方案

const sharedValue = useSharedValue(0);

useAnimatedReaction(() => {
    return sharedValue.value;
  }, (result, previous) => {
    if (result !== previous) {
       console.log(result)
    }
 }, []); // No need to pass dependencies
Run Code Online (Sandbox Code Playgroud)

使用useDerivedValue的解决方案

const sharedValue = useSharedValue(0);

useDerivedValue(() => {
    console.log(sharedValue.value);
}, []); // No need to pass dependencies

Run Code Online (Sandbox Code Playgroud)