我找到的大多数关于如何正确输入useLoaderData
的例子都是这样的
export const loader = async () => {
return json({ messages: [...] })
}
// In component...
const { messages } = useLoaderData<typeof loader>
但是,从V2开始,useLoaderData
的类型如下所示
export declare function useLoaderData(): unknown;
我们不能再通过泛型了。令人惊讶的是,我找不到一页提到这一重大变化。那么,获得类型安全的最佳方法是什么呢?我如何告诉TypeScript消息实际上存在于响应中,而不必硬编码类型本身并使用as
的丑陋转换?
谢谢你,谢谢!
1条答案
按热度按时间8fsztsew1#
我找到答案了!我的IDE默认情况下从
react-router
而不是@remix-run/react
导入useLoaderData
。它甚至没有建议我正确的包,这就是为什么我没有意识到这一点。我又看了一遍changelog,我注意到了区别!