質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Material-UI

Material-UIは、Material Designを利用可能なオープンソースのReact向けUIコンポーネントキットです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

963閲覧

React LinkPropsの意味

tiikk

総合スコア12

Material-UI

Material-UIは、Material Designを利用可能なオープンソースのReact向けUIコンポーネントキットです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2022/08/29 05:56

質問

LinkPropsはpropsの型だと思うのですがOmit<RouterLinkProps, 'to'>を指定する意味がわかりません。教えてください。お願いします。

js

1import { Link as RouterLink, LinkProps as RouterLinkProps } from 'react-router-dom'; 2import { LinkProps } from '@mui/material/Link'; 3 4const LinkBehavior = React.forwardRef< 5 HTMLAnchorElement, 6 Omit<RouterLinkProps, 'to'> & { href: RouterLinkProps['to'] } 7>((props, ref) => { 8 const { href, ...other } = props; 9 // Map href (MUI) -> to (react-router) 10 return <RouterLink ref={ref} to={href} {...other} />; 11});

参考サイト:https://mui.com/material-ui/guides/routing/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Omit<RouterLinkProps, 'to'>を指定する意味がわかりません。

toは別途to={href}と書き込んでいるので、topropに入れるとその挙動を阻害することになってしまいます。ということで、型としても外しています。

投稿2022/08/29 06:31

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiikk

2022/08/29 06:47

回答ありがとうございます。 LinkPropsを検索してもなかなか参考になるサイトが出てこないのですが、 どこを見てこのようなことを学びましたか? import { LinkProps } from '@mui/material/Link';とreact-router-domで2回LinkPropsで同じ名前が使われていますがなぜこのようなことをしていますか?
maisumakun

2022/08/29 06:52

> import { LinkProps } from '@mui/material/Link';とreact-router-domで2回LinkPropsで同じ名前が使われていますがなぜこのようなことをしていますか? 両者の型がたまたま同じ名前だっただけです。
maisumakun

2022/08/29 06:56

> LinkPropsを検索してもなかなか参考になるサイトが出てこないのですが 「コンポーネントとそのpropsに振る型」ぐらいの、もっと大きな枠組みで考えましょう。その1パターンにすぎないLinkPropsについて掘り下げたものが少ないのは必然です。
tiikk

2022/08/30 03:17

返信ありがとうございます。 LinkPropsはどこかの公式ドキュメントに説明がありますでしょうか?
maisumakun

2022/08/30 03:44

型そのものの定義は確認してみましたか? よほど複雑な型でない限り、型の内容は定義を確認すれば明らかです。
tiikk

2022/08/30 09:59

型の定義は確認していません。 どこから型の定義を確認することができますでしょうか?
maisumakun

2022/08/30 10:59

エディタは何を使っていますか? VSCodeなど、右クリックでのメニューから定義をたどれるような環境もあります。
tiikk

2022/08/30 21:43

VScode を使っています。 そのような方法で確認するのですね。ありがとうございます。やってみます。
tiikk

2022/09/09 08:45

LinkPropsは調べても何も出てきません。僕は他の人のコードが使っていたので知りました。どんな風にこのような型を見つけているのでしょうか?
maisumakun

2022/09/09 10:52

> LinkPropsは調べても何も出てきません。 型定義すら見つからないのでしょうか。 > どんな風にこのような型を見つけているのでしょうか? RouterLinkのpropsの型として指定されていませんか?
tiikk

2022/09/09 10:58

Vscodeでの確認はできました。 僕は他人のコード見てこんなものがあるのかと見つけたのですが、サイトなどで調べると何も出てこないので皆さんはどう見つけているのか気になりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問