如何通过typescript描述React Native(-Web)中的ScrollEvent类型



我不知道如何在React Native Web中描述ScrollEvent类型,但我想React Nation也是如此?

老实说,我很难正确描述React原生(以及标准React(的事件类型,因为我没有找到任何关于它的通用文档等,所以我总是使用

通常,我们可以使用泛型合成事件,并且可以将所需类型的定义传递到此泛型中。我想在我的情况下,它一定是类似ScrollEvent的东西,但我不知道那里到底应该放什么?

我试图使用标准的React.SynteticEvent类型,但我收到了一个错误

属性'contentOffset'在类型Event 上不存在

代码示例

onScroll={(e: React.SyntheticEvent) => {
let y = 0;
// the scroll data receives differently on mobile and web
if (Platform.OS !== 'web') {
// Property 'contentOffset' doesn't exist on type Event
y = e.nativeEvent.contentOffset.y;
} else {
// Property 'target' doesn't exist on type Event
y = e.nativeEvent.target.scrollTop;
}
if (inputLayout.scrollY !== y) {
setInputLayout({
...inputLayout,
scrollY: y,
});
}
if (isFunction(onScroll)) {
onScroll(e);
}
}}

非常感谢您提供的任何帮助/信息/文档链接!

Scroll Event的正确接口是UIEvent。

import React, { UIEvent } from 'react';
onScroll={(e: UIEvent<HTMLDivElement>) => {

最新更新