Реактивный компонент экспорта SSR по умолчанию - PullRequest
0 голосов
/ 25 января 2019

Я занимаюсь разработкой приложения для отображения на стороне сервера. У меня category.js внутри моего Home.js, и я хочу сделать ssr для этих двух файлов.

Home.js

    import React, { Component } from 'react';
    import { connect } from "react-redux";
    import { bindActionCreators } from "redux";
    import { loadMenuCategories } from "../actions/Home";
    import { component as Menu }  from './components/Menu';
    import { component as DefaultCategory } from './Category';

    class Home extends Component {
    componentWillMount() {
            this.props.loadMenuCategories();
        }

     render() {
      const { categories, selectedCat } = this.props;
      return (
                <div >
                 <Menu/>
                 <DefaultCategory />
               </div >
      );
     }
     }
    }

    function mapDispatchToProps(dispatch,ownProps) {

        return bindActionCreators({ loadMenuCategories}, dispatch);
    }

    function mapStateToProps({ categories }) {
        return { categories };
    }

   function loadData(Store,Props) { 
    return Promise.all([
        Store.dispatch( loadMenuCategories()) 
      ]);

   } 

    export default {
        loadData,
        component: connect(mapStateToProps, mapDispatchToProps)(Home)
    };

category.js

import React, { Component, PureComponent } from 'react';
import { Link, withRouter } from 'react-router-dom';
import { connect } from "react-redux";
import { bindActionCreators } from "redux";
import {CATS } from '../config';

class Category extends PureComponent {
  componentWillMount() {
        CATS.map(data => {
            this.props.fetchCategorySliders(data, LIMIT);
        });
    }
}

render() {
return (
            <div >
               .......
               ......
           </div >
  );
}

function mapDispatchToProps(dispatch) {
    return bindActionCreators({ fetchCategorySliders }, dispatch);
}

function mapStateToProps({ new_release, trending, editor, video_details,vStatus }) {
    return { new_release, trending, editor, video_details,vStatus };
}
function loadData(store, path) {
    return Promise.all([
        CATS.map(data => {
            Store.dispatch( fetchCategorySliders(data));
        })       
      ]);
}
export default {
    loadData,
    component: withRouter(connect(mapStateToProps, mapDispatchToProps)(Category))
};

но я получаю нижнюю ошибку.

Предупреждение: Реагируйте.createElement: тип недействителен - ожидал строку (для встроенных компонентов) или класс / функцию (для составных компонентов), но получил: объект.in Home в Connect (Home) в Route in Переключение в div в App in Route in Переключение в div в Router в StaticRouter in Provider (узел: 9310) UnhandledPromiseRejectionWarning: Необработанный отказ от обещания (id отклонения: 1): Нарушение инварианта: Тип элементаНедопустимый: ожидал строку (для встроенных компонентов) или класс / функцию (для составных компонентов), но получил: object.

...