我正在尝试创建一个InfiniteScroll组件以这种方式使用它:
import { getData } from 'api';
import { InfiniteScroll } from 'components';
export const App = () => (
<InfiniteScroll fetcher={page => getData({page})}>
{({items}) => items.map(item => <p key={item.id}>{item.name}</p>)}
</InfiniteScroll>
);
andgetData是一个获取 page 作为参数并返回 Promise 的函数,如下所示:
type Data = {
id: number;
name: string;
};
function getData(args: { page: number }): Promise<Data[]> {
// ...
}
现在我的问题是如何定义InfiniteScroll组件的类型以自动为其 render prop 函数设置类型?
实际上我想items在渲染道具中检索其类型,即道具Data[]中使用的 Promise 的返回值fetcher
我添加了这个codesandbox来处理它:
https://codesandbox.io/s/vigorous-resonance-lj09h ?file=/src/InfiniteScroll.tsx
qq_花开花谢_0
相关分类