🦄 2024 独立开发者训练营,一起创业!查看介绍 / 立即报名(剩余10个优惠名额) →

React:条件显示

有些东西在组件里你可能希望在特定条件下显示或者隐藏,或者要根据条件显示特定的内容。下面的练习可以帮你理解按条件显示。

src/components/App.js

先在 App.js 里添加一个新的组件,这个组件只负责显示,所以可以直接使用一个函数类型的组件。

const Message = (props) => {
  return <div>{ props.message }</div>
}

上面定义了一个叫 Message 的组件,函数类型的组件可以接受一个 props 参数,它就是从爸爸那里传递过来的属性。组件里面用了一组 <div> 标签,里面包装显示了属性里的 message 这个属性的值。

再去改造一下 App 这个组件:

class App extends Component {
  state = {
    header: 'ninghao.net',
    message: 'SHOW MESSAGE!',
    show: false
  }

  handleClick = () => {
    this.setState({
      show: !this.state.show
    })
  }

  render () {
    return (
      <div>
        <Header changeHeader={ this.changeHeader } header={ this.state.header } />
        <button onClick={ this.handleClick }>
          { this.state.show ? 'Hide': 'Show' }
        </button>
        { this.state.show &&
          <Message message={ this.state.message } />
        }
      </div>
    )
  }
}

在组件里我们又添加了两个 State,一个叫 message,它是要显示的信息,还有一个叫 show,可以用它的值来判断是否要显示某些东西。

在组件的显示面面,我们添加了一个 button 元素,点击这个元素会执行组件的 handleClick 事件处理,这个 handleClick 做的事就是去把组件的 state 里的 show 的值设置成跟当前的值相反的值。也就是如果当前 show 的值是 true,点击这个 button 会把 show 设置成 false

这个 button 元素上要显示的文字会根据 show 的值来显示:

{ this.state.show ? 'Hide': 'Show' }

如果 show  的值是 false,那按钮上的文字就是 Show,如果是 true,按钮上的文字就是 Hide

App 组件的显示里用了一下之前定义的 Message 组件,这个组件会根据 App 组件的 show 这个 state 的值来显示。

{ this.state.show &&
  <Message message={ this.state.message } />
}

this.state.show && ,如果 state 里的 show 的值是 true,就会显示 Message 这个组件的内容。

 

 

React
微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点