我动态导入组件
let that = this
import('./pathToMyComponent').then(component => {
// how to pass props to the component here?..
that.setState({myModule : component.default})
})
Run Code Online (Sandbox Code Playgroud)
如何将 props 传递给组件?我将把组件传递给路由器:
<Route path='myPath' component={this.state.myModule}/>
Run Code Online (Sandbox Code Playgroud)
先感谢您。
更新:
我已经设法解决它:
import('./pathToMyComponent').then(component => {
that.setState({myModule : component.default})
})
Run Code Online (Sandbox Code Playgroud)
然后在一个函数中:
GetComponent() {
let match = {}
let match.param = {nick : 'userNick'}
let Component = this.state.module && this.state.module.default
return this.state.myModule ? (<Component match={match} />) : (
<div>loading...</div>
)
}
Run Code Online (Sandbox Code Playgroud)
您需要使用 React.lazy 或 React-loadable 之类的东西,以下是 React 文档中的示例:
const OtherComponent = React.lazy(() => import('./OtherComponent'));
function MyComponent() {
return (
<div>
<OtherComponent />
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
更多信息在这里:
反应.懒惰:
https://reactjs.org/docs/code-splitting.html
可反应加载:
https://github.com/jamiebuilds/react-loadable
| 归档时间: |
|
| 查看次数: |
7730 次 |
| 最近记录: |