![](/img/trans.png)
[英]React, Typescript, Hooks - Property 'state' does not exist on type
[英]Property does not exist on state - Using React Router Hooks with TypeScript
useLocation
接受一個確定state
屬性類型的通用參數,因此:
const location = useLocation<YourStateTypeHere>();
例如:
interface LocationState {
newTransactions?: boolean;
}
// ...
const location = useLocation<LocationState>();
// ...
useDidMount(() => {
if (location.state?.newTransactions) {
scroll.scrollToBottom();
}
});
我是如何到達那里的(因為我以前沒有使用過),以防它有用:我知道大多數鈎子的 TypeScript 綁定至少實現一個通用參數,所以當我看到 React Router 的location
包含程序員定義的 state 時,我想它可能接受了一個。 因此,我打開了一個使用 React Router 和 TypeScript 的項目,並將鼠標懸停在代碼中的useLocation
上。 果然,彈出窗口顯示了一個通用參數,該參數應用於state
屬性。 結果!
不適用於路由器 V6
這是聲明
export declare function useLocation(): Location;
這不接受任何參數類型
根據github issue有人建議
interface CustomizedState {
myState: string
}
const location = useLocation();
const state = location.state as CustomizedState; // Type Casting, then you can get the params passed via router
const { myState } = state;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.