-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refine getTopic using RTKQ #458
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コメントの確認お願いします
web/src/components/AnalysisTopic.jsx
Outdated
const handleDetailOpen = () => setDetailOpen(!detailOpen); | ||
|
||
/* block rendering until data ready */ | ||
if (!ateam.ateam_id) return <Box sx={{ m: 2 }}>Loading...</Box>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ateam.ateam_id が未定義の状況ってありますかね? ( ateamはrequiredなpropsで渡されるので、存在しないパターンがあるのかが怪しい)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
required props でも undefined な可能性はあります(コンソールに警告は出ますが、それだけ)。
ただし、呼び出し側で if (!ateam) return ...
してれば問題ない認識です。
どこまで fail safe にするべきかは全体的に揃えたいですね(props に undefined を含めないのは呼び出し側の責務とする、とか、逆に受け側で必ず undefined も想定しておく、とか)。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
私の案
・基本的に、props に undefined を含めないのは呼び出し側の責務とする
・例外的にprops に undefined を含めたい箇所のみ、呼ばれた側でチェックする。
その他の場合は呼ばれた側でのチェックは不要(呼び出し側でチェックされてることを確認するのが望ましいが)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
指摘の通り、ateamの存在チェックを削除しました。
また、その際気付きましたが、ateamなし時のretrunはBoxを返してるので、他のreturnもBoxを返すようにしました。
表示確認したところ、見栄えがよくなりました。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
PR の目的
従来、トピック編集時はpropsでpresetTopicIdを受け取りスライスからTopicを取得するが、トピック作成の時はこれを受け取らず、presetTopicIdが空かどうかで分岐していた。
修正後はpresetTopicIdの代わりにフェッチしたTopicデータをpresetTopicとして受け取り、これが空かどうかで分岐する。