色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

javascript - webpack 分割加載代碼后,react 界面不更新

瀏覽:82日期:2023-06-04 18:47:18

問題描述

webpack 分割加載代碼后,react 界面不更新. 先貼代碼

main.js

export default class extends React.Component { constructor(props) {super(props)this.state = { textview: undefined, text: ’text’} } _loadText() {if (!this.state.textview) require.ensure([], require => {const Text = require(’./text’).default;this.setState({ textview: <Text text={this.state.text} />}) }) } render() {return ( <p><p>Main</p><button onClick={() => this._loadText()}>load</button><button onClick={() => this.setState({ text: ’change’ })}>change</button>{this.state.textview} </p>) }}

text.js

export default class extends React.Component { render() {return ( <p>{this.props.text}</p>) }}

點擊load后能加載text控件并顯示 但是點擊change改變state時text控件并不會刷新, 打印日志this.state.text已經改變了。

找了n久也不知道問題在哪,求大神T.T 拜謝

問題解答

回答1:

問題出在 main.js 中 _loadText 的 textview: <Text text={this.state.text} /> 上

你的這種寫法,實際上是告訴 React,當我 load 的時候,給我一個 Text 組件,并且屬性是那時候的 this.state.text (這個例子里也就是 ’text’ ),父組件更新的時候并不會對 this.state.textview 進行更新

下面這么改就可以了

_loadText () 函數中,改變 this.setState 的內容

this.setState({ textview: Text})

render () 函數中

<p> <p>Main</p> <button onClick={() => this._loadText()}>load</button> <button onClick={() => this.setState({ text: ’change’ })}>change</button> {this.state.textview ? React.createElement(this.state.textview, { text: this.state.text }) : null}</p>

標簽: JavaScript
主站蜘蛛池模板: 久草视频精品在线 | 欧美一级一片 | 亚洲欧洲日产国码二区首页 | 成人黄色在线视频 | 国产一级做a爰片在线看 | 欧美激情久久久久久久大片 | 神马午夜不卡 | 日本久久久 | 久久久久久久亚洲精品一区 | 99久久国产综合精品网成人影院 | 日韩中文字幕一在线 | 成年片免费网址网站 | 欧美黄色免费网站 | 精品午夜寂寞黄网站在线 | 日韩一级片在线播放 | 免费一级a毛片在线 | 国产精品久久久久a影院 | 久久a热6| 91精品国产免费久久久久久青草 | 久久国产免费观看 | 欧美日韩另类视频 | 100000免费啪啪18免进 | 色老久久精品偷偷鲁一区 | 在线亚洲精品自拍 | 91亚洲国产成人久久精品网站 | 久久久久久久久久久观看 | 在线天堂视频 | 久久91在线 | 久久九九有精品国产56 | 日韩成人精品日本亚洲 | 国产成人综合亚洲亚洲欧美 | 精品国产三级a | 综合自拍亚洲综合图区美腿丝袜 | 2019国产精品 | 不卡的毛片 | 香港经典a毛片免费观看看 香港经典a毛片免费观看爽爽影院 | 亚欧人成精品免费观看 | 欧美日韩在线视频观看 | 在线观看一区二区三区四区 | 9lporm自拍视频在线 | 国内视频一区 |