react-native - 复活的 SharedValue 更改时调用 React Native 代码
问题描述
我有一个reanimated
ReadOnly<SharedValue<boolean>>
从另一个派生的SharedValue
:
const solidHeader = useDerivedValue(() => {
return top.value <= -(height / 2);
});
我想在solidHeader.value
更改时调用一个 RN 函数(未恢复)。具体来说,我想更新我react-navigation
的标题透明度:
// This doesn't get called when `solidHeader.value` is updated in reanimated's thread
useEffect(() => {
navigation.setOptions({headerTransparent: !solidHeader.value});
}, [solidHeader.value]);
我尝试了以下“似乎”是正确的方法,但后来我得到了错误
Reanimated: Animated.call node args should be an array with elements of type AnimatedNode. One or more of them are not AnimatedNodes
useCode(() => {
return call([solidHeader], (solidHeader) => {
console.warn(solidHeader);
navigation.setOptions({
headerTransparent: !solidHeader,
});
});
}, [solidHeader]);
我正在实现的目标是可能的吗?
解决方案
我认为 useCode 用于 reanimated 1,而 useSharedValue 用于 reanimated 2。请按照文档:尝试 useAnimatedReaction
推荐阅读
- asp.net - 创建另一个文件时,在 ASP 应用程序中创建的文件会消失 - 我如何获取这两个文件?
- react-redux - 如何将此动作创建者传递给useEffect?
- python - Python Typing:使用函数所在对象的类型键入提示参数
- blazor-client-side - 如何在 Blazor WASM 应用程序中生成 sitemap.xml 文件
- c++ - C++ 使用多线程复制多个向量
- kubernetes - KubernetesManifest@0 错误 - 需要输入:种类
- c# - 在运行时用 Unity 中的材质填充点之间的区域
- arrays - 连接从命令行传递的多个文件的内容
- html - How to center a row of ion-fabs?
- android - Google Maps Android SDK 中的 GeoJSON 标记