我是 TS 新手,我嘗試將它與背景關系 API 一起使用,但是我遇到了這個問題:當我嘗試在提供程式中傳遞值時,我最終遇到了這個問題:
“型別'{players: Player[]; }' 不能分配給型別'Player[]'。
物件字面量只能指定已知屬性,并且'players' 不存在于型別'Player[]'.ts(2322) ”
這是我的代碼:
interface Player {
players: [];
}
type WithChildren<T = {}> = T & { children: JSX.Element };
const PlayersProvider = ({ children }: WithChildren) => {
const [players, setPlayers] = useState<Player[]>([]);
useEffect(() => {
axios.get<{ players: Player[] }>(baseUrl "/players").then((response) => {
setPlayers(response.data.players);
});
}, []);
return (
<PlayerContext.Provider value={{ players }}>
{children};
</PlayerContext.Provider>
);
};
當我在組件中使用它時它運行良好,但由于我在背景關系提供程式中外部化它壞了。有人可以解釋我有什么問題嗎?
uj5u.com熱心網友回復:
似乎您將{ players }(型別{ players: Player[]; })而不是players(型別Player[])作為值傳遞給背景關系提供程式。
你應該更換:
<PlayerContext.Provider value={{ players }}>
經過:
<PlayerContext.Provider value={players}>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/326536.html
上一篇:如何捕捉navigator.mediaDevices錯誤?
下一篇:如何為html元素串列設定型別?
