首先需要保证react-native-reanimated按照官方文档配置正确,在2.5.X版之后的配置相对简单,使用
yarn add react-native-reanimated
安装后只需要在babel.config.js中添加一个插件
react-native-reanimated/plugin
即可,如需使用之前版本详见官方文档。
react-native-gesture-handler安装时需要注意版本对应
然后这里许多同学在测试时就会发现,明明代码和官方文档一摸一样就是动画不能工作。问题可能出现在测试代码的位置,如果测试代码直接写在了新建项目默认的App.js中,或其他使用
export default 方法导出的组件中,就会出现这样的问题。问题并不在reanimated库中,而是在通常会一起使用的react-native-gesture-handler这一库中
参见react-native-gesture-handler官方文档中
这里说到手势在export default 方法导出的组件中不能工作,可以使用gestureHandlerRootHOC函数包裹需要放入组件的节点,不过这里更推荐前文提到的另一种方法。
直接使用
<GestureHandlerRootView>作为页面的根节点,比较简单,可以使用flex:1使根节点填充页面 。