私はグロメットのUIフレームワークを使用して、React/reduxアプリケーションを持っています。基本的な構造は次のとおりです。[設定]アイコンが画面いっぱいに<GLBoard />
コンポーネントをできるように、クリックされていない限り、私は<GLNav />
コンポーネントを非表示にすることがしたいどのようにグロメットSideSplitコンポーネントを非表示にする
<App className="gol">
<Article>
<GLHeader />
<SideSplit active={props.nav} onResponsive={checkMobile} >
<GLNav />
<GLBoard />
</SideSplit>
<Footer colorIndex="neutral-1-a" justify="center">© 2016 </Footer>
</Article>
</App>
。私はactive
小道具をトグルし、<GLNav />
コンポーネントのCSSクラスを切り替えるアイコンに接続された還元状態変数を持っています。 CSSは幅を0に設定して、NAVコンポーネントのスライドインとアウトを行います。
.hide{
width: 0 !important;
transition: width .3s ease-out;
}
.show{
transition: width .3s ease-out;
}
これはすべてChromeで完全に機能します。しかし、SideSplitコンポーネントが非モバイルモード(画面幅が750pxより大きい)の場合、active
propがfalseで、CSSクラス.hide
が適用されても、<GLNav />
コンポーネントの幅の値があります。幅を750px未満に変更すると、グロメットはhidden
クラスを適用し、希望通りに<GLNav />
を非表示にします。
const GLNav = props => {
return(
<SideBar colorIndex="neutral-1-a" className={props.nav}>
<Header pad="medium" justify="between">
<Title>
Settings
</Title>
<Button icon={<Close />} onClick={() => props.actions.toggleNav()} />
</Header>
</SideBar>
)
}
注:[設定]ボタンをクリックしたときに予想通り、それは、それはdoesnの作品ながら、私はまた、唯一の... ''コンポーネントをレンダリングしてみましたその場合はCSSトランジションを適用してください。 –
genestd
'max-width:0;' –
を追加してみてください。 – genestd