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

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

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

瀏覽:109日期: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
主站蜘蛛池模板: 日本欧美国产精品 | 美女视频永久黄网站免费观看国产 | 亚洲三级网站 | 久草视频2 | 亚洲黄色第一页 | 美女张开腿黄网站免费国产 | 午夜爽爽性刺激一区二区视频 | 自拍 欧美 | 手机看片午夜 | 国产精品久久成人影院 | 国产性较精品视频免费 | 成 人 a v免费视频 | 草免费视频 | 日韩不卡一级毛片免费 | 日本精品视频一区二区三区 | 在线免费成人网 | 国产福利微拍精品一区二区 | 中国人免费观看高清在线观看二区 | 99精品免费久久久久久久久日本 | 手机在线看片福利 | 永久天堂| 日本在线理论片 | 手机在线播放视频 | 欧美一级特黄高清免费 | 91久久国产综合精品 | 日韩麻豆 | 欧美高清在线视频在线99精品 | 久久厕所精品国产精品亚洲 | 日韩三级小视频 | 久久免费公开视频 | 国产一级毛片网站 | 久久综合香蕉久久久久久久 | 亚洲免费视频观看 | 91成人啪国产啪永久地址 | 国产91香蕉在线精品 | 国产精品免费综合一区视频 | 国产三片高清在线观看 | 日本免费的一级绿象 | 性感美女香蕉视频 | 一a一片一级一片啪啪 | 欧美一区二区三区在观看 |