ドアがなければifドアと書きます.
構造で論理を解決しましょう
どうしてそう思うの?
既存のreactコードのreturn部分(jsx)はif文を使用できないため、3つの演算子または
そして、もっと直感的なコードを書きたいです.
どうやって交換したの?
objectの後ろに
お願いします.
再構築
このような論理を気にするよりも、レンダリング側がどんなものを描くかを一目で見たほうがいい.
どうしてそう思うの?
既存のreactコードのreturn部分(jsx)はif文を使用できないため、3つの演算子または
&&
記号を使用する必要があります.const currentUserLevel = 'generalUser';
return(
<ButtonWrapper>
{currentUserLevel === 'generalUser' && <GeneralUser />}
{currentUserLevel === 'admin' && <Admin />}
{currentUserLevel === 'unauthorized' && <UnauthorizedUser />}
<ButtonWrapper />
)
しかし、この場合、currentUserLevel
を確認するプログラムが繰り返されるようだ.そして、もっと直感的なコードを書きたいです.
どうやって交換したの?
object
は、通常、dot notation
を使用するが、braket notation
を使用して、変数として記憶された鍵の値をロードしてもよい.const currentUserLevel = 'generalUser';
return(
<ButtonWrapper>
{
{
generalUser: <GeneralUser />,
admin: <Admin />,
unauthorized: <UnauthorizedUser />,
}[currentUserLevel]
}
<ButtonWrapper />
)
objectとしてレンダリングするデータ型を含むHTML
.objectの後ろに
[]
でcurrentUserLevel
のHTML
ブロックを引く~お願いします.
再構築
このような論理を気にするよりも、レンダリング側がどんなものを描くかを一目で見たほうがいい.
const currentUserLevel = 'generalUser';
const buttonGroup = {
generalUser: <GeneralUser />,
admin: <Admin />,
unauthorized: <UnauthorizedUser />
}
return (
<ButtonWrapper>
{ buttonGroup[currentUserLevel] }
</ButtonWrapper>
)
現在のプレイヤーレベルに応じてレンダー側がbuttonGroup
で出力されているのは異なるでしょう.どの出力が知りたいときだけ、上に行って探してもいいです.Reference
この問題について(ドアがなければifドアと書きます.), 我々は、より多くの情報をここで見つけました https://velog.io/@yunkuk/if문-없이-if문을-작성해야지テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol