我在 TypeScript SafeAreaView组件中遇到了一个奇怪的错误。我为 WebView 创建了其他参考并且它没有失败,只是在分配给 SafeAreaView 组件时似乎失败了。
import { useRef, MutableRefObject } from 'react';
import { SafeAreaView } from 'react-native-safe-area-context';
...
...
const topSafeAreaViewRef = useRef(null);
...
...
<SafeAreaView ref={topSafeAreaViewRef} style={styles.container} edges={['top', 'right', 'left']} >
TS2322:类型'{孩子:元素;参考:可变参考对象;风格:{弹性:数字;背景颜色:任意;}; 边缘:(“顶部”|“右”|“左”)[];}' 不可分配给类型 'IntrinsicAttributes & ViewProps & { children?: ReactNode; 模式?:“填充”| “边距” | 不明确的; 边缘?:只读边缘 [] | 不明确的; }'。类型'IntrinsicAttributes & ViewProps & { children?: ReactNode; 上不存在属性'ref' 模式?:“填充”| “边距” | 不明确的; 边缘?:只读边缘 [] | 不明确的; }'。
我需要 ref 因为我需要在外部函数上设置setNativeProps
const handleOnLoadEnd = (
syntheticEvent: WebViewNavigationEvent | WebViewErrorEvent,
topSafeAreaViewRef: MutableRefObject<any>,
) => {
topSafeAreaViewRef.current.setNativeProps({
style:{
backgroundColor: Constants?.manifest?.extra?.webViewBackground,
}
});
};