国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

React組件內事件傳參實現tab切換的示例代碼

2019-11-19 13:33:36
字體:
來源:轉載
供稿:網友

本文介紹了React組件內事件傳參實現tab切換的示例代碼,分享給大家,具體如下:

  1. 組件內默認onClick事件觸發函數actionClick, 是不帶參數的,
  2. 不帶參數的寫法: 如onClick= { actionItem }
  3. 帶參數的寫法, onClick = { this.activateButton.bind(this, 0) }

下面是一個向組件內函數傳遞參數的小例子

需求: 在頁面的底部, 有四個按鈕, 負責切換內容, 當按鈕被點擊時, 變為激活狀態, 其余按鈕恢復到未激活狀態

分析: 我們首先要創建點擊事件的處理函數, 當按鈕被點擊時, 將按鈕的id作為參數發送給處理函數, 處理函數激活對應當前id的按鈕, 并將其余三個按鈕調整到未激活狀態

實現: 用組件state創建一個含有四個元素的一維數組, 四個元素默認為零, 但界面中某個按鈕被點擊時, 組件內處理函數將一維數組內對應元素變為1, 其它元素變為0

效果演示:

核心代碼:

import 'babel-polyfill';import React from 'react';import ReactDOM from 'react-dom';import './index.scss'class TabButton extends React.Component {    constructor(props) {      super(props);      this.state = {        markArray: [0, 0, 0, 0],         itemClassName:'tab-button-item'      };      this.activateButton = this.activateButton.bind(this);    }    // 根據參數id, 來確定激活四個item中的哪一個    activateButton(id) {      let tmpMarkArray = [0, 0, 0, 0]      tmpMarkArray[id] = 1;      this.setState({markArray: tmpMarkArray});    }    render() {      return (         <div className = "tab-button" >        <div className = {(this.state.markArray)[0] ? "tab-button-item-active" : "tab-button-item" } onClick = { this.activateButton.bind(this, 0) } > 零 </div>         <div className = {(this.state.markArray)[1] ? "tab-button-item-active" : "tab-button-item" } onClick = { this.activateButton.bind(this, 1) } > 壹 </div>         <div className = {(this.state.markArray)[2] ? "tab-button-item-active" : "tab-button-item" } onClick = { this.activateButton.bind(this, 2) } > 貳 </div>         <div className = {(this.state.markArray)[3] ? "tab-button-item-active" : "tab-button-item" } onClick = { this.activateButton.bind(this, 3) } > 叁 </div>        </div>)      }    }    ReactDOM.render( < TabButton / > , document.getElementById("root"));

小結

上面的例子也可以通過event.target.value快速實現,但這個demo的擴展性更好, 在版本迭代過程中, 我們可以傳遞數量更多的參數, 詳盡的描述UI層當前的狀態, 方便業務的擴展

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 尤溪县| 奉节县| 临洮县| 郧西县| 弋阳县| 荣成市| 滦平县| 横峰县| 侯马市| 东乡县| 竹溪县| 长乐市| 遂昌县| 孝义市| 通海县| 永平县| 亳州市| 揭西县| 肃宁县| 富源县| 叙永县| 西城区| 肃南| 彰武县| 南康市| 田东县| 南澳县| 蕉岭县| 延长县| 庄河市| 固镇县| 晋城| 哈密市| 绍兴市| 彝良县| 新沂市| 隆安县| 彭泽县| 法库县| 亳州市| 紫云|