在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 網頁設計教程 > 詳細頁面

react函數this相關問題的區分(代碼示例)

react函數this相關問題的區分(代碼示例)

更新時間:2025-12-08 文章作者:未知 信息來源:網絡 閱讀次數:

網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立...
網頁的本質就是超級文本標記語言,通過結合使用其他的Web技術(如:腳本語言、公共網關接口、組件等),可以創造出功能強大的網頁。因而,超級文本標記語言是萬維網(Web)編程的基礎,也就是說萬維網是建立在超文本基礎之上的。超級文本標記語言之所以稱為超文本標記語言,是因為文本中包含了所謂“超級鏈接”點。
本篇文章給大家帶來的內容是關于react函數this相關問題的分析(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

react 函數this相關

在使用react的過程中,常常因為函數的this問題導致執行結果不如預期。現梳理下這塊的問題,先看代碼:

import React from "react";

class MsgList extends React.PureComponent {
  render() {
    return (
      <ul>
        {this.props.list.map((item, index) => (<li key={index}>{item}</li>))}
      </ul>
    )
  }
}

export default class List extends React.Component {
  constructor(props) {
    super(props)
    this.state = {
      inputMsg: '',
      list: [123]
    }
  }
  
  handleInput = (val) => {
    this.setState({
      inputMsg: val.target.value
    })
  }

  handleSubmit = () => {
    const text = this.state.inputMsg
    if (text) {
      const msg = [...this.state.list, text]
      this.setState({
        inputMsg: '',
        list: msg
      })
    }
  }

  render() {
    return (
      <p>
        <MsgList list={this.state.list}/>
        <input type="text" value={this.state.inputMsg}
            onChange={this.handleInput}/>
        <button onClick={this.handleSubmit}>提交</button>
      </p>
    )
  }
}

示例代碼實現了簡單的元素添加和列表展示功能。

其中函數綁定和定義的方式如下:

// 綁定
onChange={this.handleInput}
// 定義
handleInput = (val) => {
  this.setState({
    inputMsg: val.target.value
  })
}

定義函數的方式有很多種,比如:

handleInput(val) {
  console.log(val.target)
  console.log(this)
  this.setState({
    inputMsg: val.target.value
  })
}

此時val.target為<input>元素,但是this為undefined,此時調用this.setState會報錯。

006tNbRwgy1fx9qh55lp6j314g0feqa5.jpg

類的方法默認是不會綁定this的,所以這里丟失了函數執行的上下文。那么如果在綁定時候加上一對括號:

<input type="text" value={this.state.inputMsg} onChange={this.handleInput()}/>

// 函數定義
handleInput(val) {
  console.log(val.target)
  console.log(this)
  this.setState({
      inputMsg: val.target.value
  })
}

此時添加括號,雖然綁定了上下文,但這樣會導致函數在組件渲染的時候被觸發,而不是等到渲染完成時通過點擊觸發,且無法響應onChange動作。組件在渲染過程中觸發函數,函數中調用setState()會再次調用render,導致死循環。

如果在最開始使用.bind()為函數綁定上下文,去掉綁定函數時的括號,

constructor(props) {
  super(props)
  this.state = {
    inputMsg: 'hello',
    list: [123]
  }
  this.handleInput = this.handleInput.bind(this)
}

這時功能正常。

而最開始我們定義函數時用箭頭函數綁定了上下文,所以也能實現想要的功能。

除此之外,還有一種書寫方式也可以正常工作,不過實際上與最開始的寫法是一樣的。

<input type="text" value={this.state.inputMsg} onChange={(e)=>this.handleInput(e)}/>

小結

使用react的時候要注意this的指向,類默認是不會為方法綁定this,要么在開始的時候手動綁定this,要么可以使用箭頭函數自動綁定上下文。如果不是希望在組件渲染時就觸發的函數,那么綁定函數時不能加括號。

以上就是react函數this相關問題的分析(代碼示例)的詳細內容,更多請關注php中文網其它相關文章!


網站建設是一個廣義的術語,涵蓋了許多不同的技能和學科中所使用的生產和維護的網站。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 午夜精品中文字幕| 国产精品999视频| 亚洲一区二区蜜桃| 欧美国产激情视频| 福利视频一区二区三区四区| 日韩不卡一二区| 国产高清999| 亚洲av毛片在线观看| 992kp免费看片| 性欧美18一19内谢| dy888午夜| 妺妺窝人体色www看人体| 香港三级日本三级a视频| 日韩欧美精品免费| 九色自拍视频在线观看| 免费成人在线视频网站| 欧美日韩在线成人| 国产精品视频中文字幕| 国产在线视频三区| 蜜臀精品一区二区| 欧美三级午夜理伦三级| 亚洲欧美另类动漫| 中文字幕12页| 免费一级淫片aaa片毛片a级| 激情五月宗合网| 日韩一区二区三区不卡视频| 亚洲一二区在线观看| 日本美女爱爱视频| 亚洲国产精品毛片av不卡在线| 午夜免费福利在线| 777久久精品一区二区三区无码 | av天堂永久资源网| 久久久久久久久久一区| 欧美日韩午夜爽爽| 日本在线视频www| 欧美日韩在线免费观看视频| 欧美a级免费视频| 国产成人美女视频| 久激情内射婷内射蜜桃| 亚洲制服中文字幕| 男人日女人下面视频| 在线观看亚洲色图| 国产99久久九九精品无码| 午夜一级免费视频| 欧美国产日韩在线播放| 国产午夜精品视频一区二区三区| www.超碰com| 人人妻人人添人人爽欧美一区| 亚洲一区在线不卡| 日韩av片在线看| 国内精品在线观看视频| 中文字幕制服丝袜在线| 国产成人av影视| 少妇无码av无码专区在线观看| 公共露出暴露狂另类av| 免费看污污网站| 男女无套免费视频网站动漫| 一区二区传媒有限公司| xxxxxx在线观看| 亚洲无在线观看| 国产乱女淫av麻豆国产| 手机看片福利盒子久久| 男人天堂网视频| 熟女少妇在线视频播放| 青青草国产精品视频| 黄色一级片av| 欧美日韩中文字幕在线播放| 青少年xxxxx性开放hg| 日韩高清在线一区二区| 性鲍视频在线观看| 国产系列第一页| 亚洲精品在线网址| 亚洲制服在线观看| 亚洲综合123| 2022中文字幕| 免费看国产一级片| 精品视频一区二区在线| 午夜dv内射一区二区| 小泽玛利亚视频在线观看| 在线能看的av网站| 999热精品视频| a级黄色片免费| 香港三级韩国三级日本三级| avav在线看| 国产精品自拍视频在线| 国产免费色视频| 国产色一区二区三区| 国产又黄又猛视频| 亚洲黄色av片| 黄色一级视频在线播放| 成人午夜视频免费在线观看| 福利片一区二区三区| 成年人视频大全| 妺妺窝人体色www在线小说| jizzzz日本| 97免费视频观看| 我看黄色一级片| 日本a在线天堂| 国产一区二区在线免费播放| 国产手机视频在线观看| 免费观看日韩毛片| 91香蕉视频网址| 欧美综合在线观看视频| 青少年xxxxx性开放hg| 男人的天堂99| 麻豆一区二区三区在线观看| 国产主播在线看| 久久免费一级片| 91香蕉视频导航| 免费看国产曰批40分钟| 天堂在线精品视频| 日韩亚洲在线视频| 国产专区在线视频| 中文字幕成人免费视频| 俄罗斯av网站| 99久re热视频精品98| 日本不卡一区在线| 久久久久久久激情| 国产精品自拍合集| 喜爱夜蒲2在线| 日韩av福利在线观看| 91色国产在线| 免费观看成人网| 少妇高潮喷水在线观看| 屁屁影院ccyy国产第一页| 国产福利精品一区二区三区| 国产偷人视频免费| 国产美女无遮挡网站| 成年人午夜视频在线观看 | 日韩精品 欧美| 国产一区二区三区播放| 国产精品嫩草影视| 天天干天天操天天做| 国产一伦一伦一伦| 天天干天天草天天| 亚洲欧美自拍另类日韩| 一区二区xxx| 九九精品久久久| 亚洲综合激情视频| 玖玖爱视频在线| 欧美日韩在线免费观看视频| 五月天婷婷在线观看视频| 在线观看视频在线观看| 亚洲精品永久视频| 日韩视频在线免费播放| 日韩不卡视频一区二区| 欧美极品少妇无套实战| 国产九九九九九| 91人人澡人人爽人人精品| 国产aaaaa毛片| 异国色恋浪漫潭| 欧美一级视频在线播放| 欧美极品欧美精品欧美图片| 少妇黄色一级片| 欧美一级免费在线观看| 免费网站在线观看视频| 欧美成人黑人猛交| 91aaa精品| 国产91在线视频观看| 亚洲va在线va天堂va偷拍| www.18av.com| 欧美一级特黄a| 黄色网络在线观看| 国产中文字幕在线免费观看| 向日葵污视频在线观看| 国产va亚洲va在线va| 少妇一级淫免费放| 国产一级片91| 成人性生交免费看| 日本一级黄视频| 国产激情在线看| 日韩一级性生活片| 爱豆国产剧免费观看大全剧苏畅 | 激情图片中文字幕| 人体内射精一区二区三区| 国产日韩成人内射视频| 不卡中文字幕在线观看| 亚洲国产精品无码观看久久| 91国视频在线| 久久久久久综合网| 9191国产视频| 亚洲三级视频网站| 成人午夜视频在线观看免费| 国模杨依粉嫩蝴蝶150p| 国产中文字幕二区| 思思久久精品视频| 国产精品免费观看久久| 欧美无砖专区免费| 在线不卡一区二区三区| 欧美日韩黄色一级片| 日本黄色片一级片| 午夜剧场在线免费观看| 久久精品国产精品亚洲色婷婷| 我要看一级黄色大片| 97在线国产视频| 亚洲第一综合网站| 91av资源网| 国产v亚洲v天堂无码久久久| 成人国产在线看| 青青草原av在线播放|