典型方式
最常见的模式是根据状态有选择地渲染元素。 
class Foo extends React.Component {
    state = { showing: true };
    render() {
        const { showing } = this.state;
        return (
            <div>
                <button onClick={() => this.setState({ showing: !showing })}>toggle</button>
                { showing 
                    ? <div>This is visible</div>
                    : null
                }
            </div>  
        )
    }
}
选择
您还可以使用基于状态的样式。这不太常见,但是当你在那个 div 中有复杂的组件时会很有用 - 最近的一个例子,我在一个可切换的组件中有一个复杂的非 React D3 图,最初,我使用了上面的第一种方法,但导致了相当打开/关闭 div 时有点滞后,因为 D3 再次循环。
但通常使用第一种方法,除非您有理由使用替代方法。 
class Foo extends React.Component {
    state = { showing: true };
    render() {
        const { showing } = this.state;
        return (
            <div>
                <button onClick={() => this.setState({ showing: !showing })}>toggle</button>
                <div style={{ display: (showing ? 'block' : 'none') }}>This is visible</div>
            </div>  
        )
    }
}
笔记
我使用?:三元运算符而不是&&- 我坚信使用&&是依靠该运算符的副作用来实现特定结果。它有效,不要误会我的意思,但在我看来,三元运算符更具表现力,并且被设计为有条件的。
最后一点只是我的意见 - 所以我不质疑&&.