日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

React條件渲染實例講解使用_React

作者:-耿瑞- ? 更新時間: 2022-12-04 編程語言

我們先創建一個用于演示條件渲染的組件

import './App.css';
import React from "react";
class App extends React.Component{
  constructor(props){
    super(props);
    this.state = {
      signIn: false
    }
  }
  increase(){
    this.setState({
      signIn: !this.state.signIn
    })
  }
  render(){
    let ligin = this.state.signIn?<span>已登錄</span>:<span>未登錄</span>
    return (
      <div className="App">
        { ligin }
        <button onClick = { this.increase.bind(this) }>{ this.state.signIn?"取消登錄":"登錄" }</button>
      </div>
    )
  }
}
export default App;

這里我們模擬了一個登錄和未登錄的情況

首先 我們在state中定義了一個signIn 這是個布爾類型的變量 比喻成 他為true 表示用戶已登錄 為false 表示用戶還沒有登錄

然后 我們在render函數中定義了一個ligin變量 他用了三元運算符 這里是在判斷 this.state.signIn是不是true

如果為true 則為已登錄 否則 是未登錄

然后 這個ligin就接受到了結果 然后我們將他插入在我們的頁面元素中

運行的效果就是這樣

然后我們點一下按鈕

因為按鈕的點擊事件會改變signIn 他的條件改變了 渲染的元素就 不一樣了

然后我們的條件判斷也可以直接寫在頁面里

我們在state中再加一個list值

constructor(props){
super(props);
  this.state = {
    signIn: false,
    list: []
  }
}

我們加了一個list變量 他的值是一個空數組

然后我們在render中循環遍歷這個list

render(){
  let ligin = this.state.signIn?<span>已登錄</span>:<span>未登錄</span>
  return (
    <div className="App">
      { ligin }
      <div>
        {
          this.state.list.map((item,index) =>{
            return <p key = {index}>{ item }</p>
          })
        }
      </div>
      <button onClick = { this.increase.bind(this) }>{ this.state.signIn?"取消登錄":"登錄" }</button>
    </div>
  )
}

但大家或許會發現 我們的數組是沒有值的啊

用戶一看 你這什么都沒有 是不是出問題啦?

這是我們就可以判斷 如果數組是空的 給用戶一個提示

render(){
 let ligin = this.state.signIn?<span>已登錄</span>:<span>未登錄</span>
 return (
   <div className="App">
     { ligin }
     {
       this.state.list.length > 0?
       <div>
         {
           this.state.list.map((item,index) =>{
             return <p key = {index}>{ item }</p>
           })
         }
       </div>
       :
       <div>暫無數據....</div>
     }
     <button onClick = { this.increase.bind(this) }>{ this.state.signIn?"取消登錄":"登錄" }</button>
   </div>
 )
}

我們這里判斷this.state.list的長度大于0 我們就循環渲染 如果是0 那就展示提示 暫無數據…

我們代碼運行結果如下

原文鏈接:https://blog.csdn.net/weixin_45966674/article/details/127187484

欄目分類
最近更新