SPFx反应无法读取属性'形状'未定义的

时间:2018-03-02 09:28:16

标签: reactjs typescript spfx

您好我正在创建一个SPFX天气webpart,我收到此错误:

enter image description here

运行gulp build时没有错误。我不知道如何调试我的问题。这是proptypes.shape()的片段,我得到了我的问题:

import * as React from 'react';
import PropTypes from 'prop-types';
    export const Day: React.SFC<any> = props => {
      const date = props.day.dt;
      const icon = getIcon(props.day.weather[0].id);
      const animate = true;
      const iconSize = 64;
      const iconColor = 'black';
      return (
        <div className={appClasses.dayContainer} onClick={props.onClick} role="link">
            <h2 className={appClasses.date}>{(new Date(date * 1000)).toDateString()} - {(new Date(date * 1000)).toLocaleTimeString()}</h2>
           <ReactAnimatedWeather
                icon={icon}
                color={iconColor}
                size={iconSize}
                animate={animate}
            />
        </div>
      );
    };

    Day.defaultProps = {
      onClick: () => {},
    };

    Day.propTypes = {
      day: PropTypes.shape({
        dt: PropTypes.number.isRequired,
        weather: PropTypes.array.isRequired,
      }).isRequired,
      onClick: PropTypes.func,
    };

我想注意,我首先使用react创建了webpart,它运行正常,但是当我创建了一个SPFX应用程序,并将我现有的代码转移到它中。我遇到过这些错误。

这是我的package.json

{
  "name": "spfx-weather-2",
  "version": "0.0.1",
  "private": true,
  "engines": {
    "node": ">=0.10.0"
  },
  "dependencies": {
    "@microsoft/sp-core-library": "~1.1.0",
    "@microsoft/sp-webpart-base": "~1.1.1",
    "@types/react": "0.14.46",
    "@types/react-addons-shallow-compare": "0.14.17",
    "@types/react-addons-test-utils": "0.14.15",
    "@types/react-addons-update": "0.14.14",
    "@types/react-dom": "0.14.18",
    "@types/webpack-env": ">=1.12.1 <1.14.0",
    "prop-types": "^15.6.1",
    "react": "15.4.2",
    "react-animated-weather": "^1.0.3",
    "react-dom": "15.4.2",
    "react-router-dom": "^4.2.2"
  },
  "devDependencies": {
    "@microsoft/sp-build-web": "~1.1.0",
    "@microsoft/sp-module-interfaces": "~1.1.0",
    "@microsoft/sp-webpart-workbench": "~1.1.0",
    "gulp": "~3.9.1",
    "@types/chai": ">=3.4.34 <3.6.0",
    "@types/mocha": ">=2.2.33 <2.6.0"
  },
  "scripts": {
    "build": "gulp bundle",
    "clean": "gulp clean",
    "test": "gulp test"
  }
}

1 个答案:

答案 0 :(得分:0)

在此处查看我的答案[SPLoaderError.loadComponentError]: ***Failed to load component

你很可能遇到同样的问题。如果您要发布我的github链接供我克隆,我可以为您确认。

TL; DR

您的工厂之间可能有循环引用。您需要将顶级工厂所需的任何代码移动到所述工厂的底部。

如果您在阅读完其他答案后不太明白,请告诉我。