Pull Request已成功合入, 合并人@huangyouhua
(感谢 Arek Kasprzyk 的贡献)感谢提交 Pull Requests!
Thanks for submitting a pull request.


start build


首次触发
门禁构建开始,包含静态检查、代码编译【ohos_react_native_master编译】,预计在60分钟内完成,门禁结果会同步发送到注册邮箱。您可以通过如下链接跟踪门禁进展:http://dcp.openharmony.cn/workbench/cicd/detail/690b7e0e64650f998bb69d1b/runlist


代码门禁未通过
您可以通过如下链接查看门禁报告:http://dcp.openharmony.cn/workbench/cicd/detail/690b7e0e64650f998bb69d1b/runlist
静态检查:
| # | check type | result | report |
|---|---|---|---|
| 1 | codeCheck | pass | >>> |
编译测试:
| # | Device | build result | package |
|---|---|---|---|
| 1 | ohos_react_native_master | failed(compile failed) | >>> |


Closing. This is more complex issue that consists of 3 subproblems.


start build


代码有更新,重置PR验证状态


本地或库上代码有更新,全量重新构建,重置所有关联PR的验证状态
门禁构建开始,包含静态检查、代码编译【ohos_react_native_master编译】,预计在60分钟内完成,门禁结果会同步发送到注册邮箱。您可以通过如下链接跟踪门禁进展:http://dcp.openharmony.cn/workbench/cicd/detail/6914b46264650f998bccd866/runlist


感谢提交 Pull Requests!
Thanks for submitting a pull request.


start build


当前有构建正在进行中,请勿重复触发


代码门禁通过
您可以通过如下链接查看门禁报告:http://dcp.openharmony.cn/workbench/cicd/detail/6914b46264650f998bccd866/runlist
静态检查:
| # | check type | result | report |
|---|---|---|---|
| 1 | codeCheck | pass | >>> |
编译测试:
| # | Device | build result | package |
|---|---|---|---|
| 1 | ohos_react_native_master | success | >>> |


Description
setEnableScrollInteraction should be called in onFinalizeUpdates because its logic depends on the position in the components hierarchy, which isn't established when onPropsChanged is called.
Changes
Test Plan
The behavior of the following reproducer should be more similar to Android. This MR is a partial fix.
import {ScrollView, Text, useWindowDimensions, View} from 'react-native'; import Animated, {useAnimatedStyle} from 'react-native-reanimated'; const LOADING_HEIGHT = 48; export default function NestedScrollView() { const {height: windowHeight} = useWindowDimensions(); const animatedStyles = useAnimatedStyle(() => { 'worklet'; return { transform: [ { translateY: 32, }, ], }; }); return ( <View style={[{height: windowHeight, paddingTop: 88}]}> <View style={{flex: 1}}> <ScrollView style={{backgroundColor: 'cyan'}} scrollEventThrottle={1} bounces={false} showsVerticalScrollIndicator={false}> <View style={{borderWidth: 1}}> {Array(20) .fill(1) .map((_, index) => ( <Text key={index}>{index}</Text> ))} </View> <View style={{ height: windowHeight - 88, flexDirection: 'row', }}> <View style={{ height: '100%', width: 1, backgroundColor: 'black', }} /> <View style={{flex: 1}}> <Animated.View style={[ { height: LOADING_HEIGHT, position: 'absolute', top: -LOADING_HEIGHT, width: 100, backgroundColor: 'green', zIndex: 2, display: 'flex', flexDirection: 'row', alignItems: 'center', justifyContent: 'center', transform: [{translateY: -32}], }, animatedStyles, ]} /> <ScrollView style={{ backgroundColor: 'pink', flex: 1, height: '100%', }} bounces={false} nestedScrollEnabled={false} scrollEventThrottle={1} showsVerticalScrollIndicator={false}> {Array(100) .fill(1) .map((_, index) => ( <Text key={index}>{index}</Text> ))} </ScrollView> </View> </View> </ScrollView> </View> </View> ); }Checklist