亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:104日期: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
主站蜘蛛池模板: 四川丰满护士毛茸茸 | 国产精品久久天天影视 | 亚洲欧美国产精品第1页 | 精品视频在线免费看 | 国产精品视频免费视频 | 成人在线免费视频播放 | 我要看黄色录像一级片 | 26uuu欧美视频在线观看 | 日本特黄绿像大片免费看 | 中文字幕yellow在线资源 | 欧美国产精品一区二区免费 | 精品欧美一区二区三区四区 | 丁香婷婷在线观看 | 亚洲高清网站 | 在线观看视频日韩 | 男女激情网 | 午夜网站在线播放 | 午夜性影院 | 亚洲与黑人| 精品国产福利第一区二区三区 | 国产成人高清亚洲一区91 | 国产成人yy免费视频 | 一级爱做片免费观看久久 | 欧美真人毛片动作视频 | 欧美成人精品第一区 | 大学生一级特黄的免费大片视频 | 香蕉国产在线观看免费 | 欧美一区日韩精品 | 免费在线日韩 | 亚洲综合区 | 色综合亚洲七七久久桃花影院 | 免费看的一级片 | 欧美日韩在线播放一区二区三区 | 日韩伦理亚洲欧美在线一区 | 国内精品久久久久久久aa护士 | 色视网站| 国产白嫩在线观看视频 | 亚洲精品一区二区三区在线播放 | 精品小视频在线 | 国产黄色在线视频 | jizzjiz熟丰满老妇日本 |