webpack 分割加载代码后,react 界面不更新

webpack 分割加载代码后,react 界面不更新. 
先贴代码

main.js

https://img.mukewang.com/5c21df7500019e7d07950559.jpg

text.js


export default class extends React.Component {

    render() {

        return (

            <div>{this.props.text}</div>


        )

    }

}

点击load后能加载text控件并显示 
但是点击change改变state时text控件并不会刷新, 
打印日志this.state.text已经改变了。

找了n久也不知道问题在哪,求大神T.T 
拜谢


慕容3067478
浏览 446回答 1
1回答

Smart猫小萌

问题出在 main.js 中&nbsp;_loadText&nbsp;的&nbsp;textview: <Text text={this.state.text} />&nbsp;上你的这种写法,实际上是告诉 React,当我 load 的时候,给我一个&nbsp;Text&nbsp;组件,并且属性是那时候的&nbsp;this.state.text&nbsp;(这个例子里也就是 'text' ),父组件更新的时候并不会对&nbsp;this.state.textview&nbsp;进行更新下面这么改就可以了_loadText () 函数中,改变&nbsp;this.setState&nbsp;的内容this.setState({&nbsp; &nbsp; textview: Text})render () 函数中<div>&nbsp; &nbsp; <div>Main</div>&nbsp; &nbsp; <button onClick={() => this._loadText()}>load</button>&nbsp; &nbsp; <button onClick={() => this.setState({ text: 'change' })}>change</button>&nbsp; &nbsp; {this.state.textview ? React.createElement(this.state.textview, { text: this.state.text }) : null}</div>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript