react- loadable を使用して、react ルーター v4 でコード分割を試みています。私が達成しようとしているのは、現在のビューを読み込み中のコンポーネントに置き換えるのではなく、現在レンダリングされているものをすべて保持することです。現在ロードされているコンポーネントのみの状態を変更します。反応ロード可能を使用してこれを達成する方法はありますか? または、別のライブラリがある可能性があります。
import Loadable from 'react-loadable';`
`import LoaderStripComponent from './LoaderStripComponent.jsx';`
`export default function Stage3Loadable(opts) {
var loadable = Loadable(Object.assign({
loading: LoaderStripComponent,
timeout: 10
}, opts));
return loadable;
};`
`<Swtich>
<Route exact path="/" component={Stage3Loadable({
loader: () => import('../components/HomeCoverPage.jsx'),
modules: ['.../components/HomeCoverPage.jsx'],
webpack: () => [require.resolveWeak('../components/HomeCoverPage.jsx')],
})} />
</Swtich>`
`class LoaderStripComponent extends React.Component {
componentDidMount() {
showLoader();
}
componentWillUnmount() {
hideLoader();
}
componentWillReceiveProps(nextProps) {
// console.log('>>>>>>>>>>>>', props.error);
}
render() {
return null;
}
}`
`function mapStateToProps(state) {
return {
device: state.device,
geolocation: state.geoLocation,
loader: state.routerLoading
};
}`
`function mapDispatchToProps(dispatch) {`
`return bindActionCreators({`
}, dispatch);
`}`
export default connect(mapStateToProps, mapDispatchToProps)(LoaderStripComponent);
インポートの約束が解決されるまで、この LoadableStrip が以前にロードされたコンポーネントをレンダリングするようにします。