代码之家  ›  专栏  ›  技术社区  ›  Kristian

预告声明中的意外标记

  •  0
  • Kristian  · 技术社区  · 6 年前

    我正在试用react样板。它配有一些发电机。

    当我生成一个所有选项都勾选“是”的新容器时…

    ? Select the base component type: React.Component
    ? What should it be called? UsersPage
    ? Do you want headers? Yes
    ? Do you want an actions/constants/selectors/reducer tuple for this container? Yes
    ? Do you want sagas for asynchronous flows? (e.g. fetching data) Yes
    ? Do you want i18n messages (i.e. will this component use text)? Yes
    ? Do you want to load resources asynchronously? Yes
    

    …它创建这个文件。

    /**
     *
     * DashboardPage
     *
     */
    
    import React from 'react';
    import PropTypes from 'prop-types';
    import { connect } from 'react-redux';
    import { Helmet } from 'react-helmet';
    import { FormattedMessage } from 'react-intl';
    import { createStructuredSelector } from 'reselect';
    import { compose } from 'redux';
    
    import injectSaga from 'utils/injectSaga';
    import injectReducer from 'utils/injectReducer';
    import makeSelectDashboardPage from './selectors';
    import reducer from './reducer';
    import saga from './saga';
    import messages from './messages';
    
    /* eslint-disable react/prefer-stateless-function */
    export class DashboardPage extends React.Component {
    
      render() {
        return (
          <div>
            <Helmet>
              <title>DashboardPage</title>
              <meta name="description" content="Description of DashboardPage" />
            </Helmet>
            <FormattedMessage {...messages.header} />
            <div>
              <CenteredSection>
                <H2>
                  <FormattedMessage {...messages.startProjectHeader} />
                </H2>
                <p>
                  <FormattedMessage {...messages.startProjectMessage} />
                </p>
              </CenteredSection>
              <Section>
                <H2>
                  <FormattedMessage {...messages.trymeHeader} />
                </H2>
              </Section>
          </div>
        );
      }
    }
    
    DashboardPage.propTypes = {
      dispatch: PropTypes.func.isRequired,
    };
    
    const mapStateToProps = createStructuredSelector({
      dashboardpage: makeSelectDashboardPage(),
    });
    
    function mapDispatchToProps(dispatch) {
      return {
        dispatch,
      };
    }
    
    const withConnect = connect(
      mapStateToProps,
      mapDispatchToProps,
    );
    
    const withReducer = injectReducer({ key: 'dashboardPage', reducer });
    const withSaga = injectSaga({ key: 'dashboardPage', saga });
    
    export default compose(
      withReducer,
      withSaga,
      withConnect,
    )(DashboardPage);
    

    当我在浏览器中加载页面时,会出现一个神秘的错误:

    ERROR in ./app/containers/DashboardPage/index.js
    Module build failed (from ./node_modules/babel-loader/lib/index.js):
    SyntaxError: Unexpected token, expected } (53:10)
    
      51 | 
      52 | DashboardPage.propTypes = {
    > 53 |   dispatch: PropTypes.func.isRequired,
         |           ^
      54 | };
      55 | 
      56 | const mapStateToProps = createStructuredSelector({
    

    我希望这个错误能有点帮助。有人能告诉我这里到底出了什么问题吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Chad Moore    6 年前

    在render()函数中,缺少一个 </div> 标签。

    也, CenteredSection Section 未导入,并且将未定义。

    所以,发电机坏了,或者不够用。