content.jsx 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import React, { Component } from 'react';
  2. import '../content.less';
  3. import LeftTab from './leftTab';
  4. class Content extends Component {
  5. constructor() {
  6. super();
  7. this.state = {
  8. loading: false,
  9. component: 'div'
  10. };
  11. }
  12. componentWillMount () {
  13. if (window.location.hash) {
  14. this.getKey(window.location.hash.substr(1));
  15. } else {
  16. this.getKey("normal");
  17. };
  18. }
  19. getKey (key) {
  20. switch (key) {
  21. case 'normal':
  22. require.ensure([], () => {
  23. const Normal = require('./normal').default;
  24. this.setState({
  25. component: Normal
  26. });
  27. });
  28. break;
  29. case 'collection':
  30. require.ensure([], () => {
  31. const Collection = require('./collection').default;
  32. this.setState({
  33. component: Collection
  34. });
  35. });
  36. break;
  37. case 'techList':
  38. require.ensure([], () => {
  39. const TechList = require('./techList').default;
  40. this.setState({
  41. component: TechList
  42. });
  43. });
  44. break;
  45. case 'serviceList':
  46. require.ensure([], () => {
  47. const ServiceList = require('./serviceList').default;
  48. this.setState({
  49. component: ServiceList
  50. });
  51. });
  52. break;
  53. case 'consultList':
  54. require.ensure([], () => {
  55. const ConsultList = require('./consultList').default;
  56. this.setState({
  57. component: ConsultList
  58. });
  59. });
  60. break;
  61. };
  62. window.location.hash = key;
  63. }
  64. render () {
  65. return (
  66. <div className="acc-content">
  67. <LeftTab handlekey={this.getKey.bind(this)} />
  68. <div className="content-right">
  69. <this.state.component />
  70. </div>
  71. </div>
  72. )
  73. }
  74. }
  75. export default Content;