【问题标题】:Replacing a React.createClass with extends React.Component用扩展 React.Component 替换 React.createClass
【发布时间】:2017-04-03 04:48:28
【问题描述】:

Facebook 建议将来完全删除 React.createClass 以支持 ES6 类。我现在开始检查我的 react.js 类,并用现在接受的 class MyClass extends React.Component 语法替换它们。但是,我认为我在某些事情上还不够成熟。我编写了以下 API 挂载代码,并且 gulp 在加载时似乎不喜欢这个特定模块:Cannot find module '.components/ticker-trader' from '/.../src'。

我的特定班级概述为:

import React, { Component, PropTypes } from 'react';

class TickerTrader extends React.Component {
  constructor(props) {
    super(props);
    this.state = {

    };
  }

  componentDidMount() {
      $.get("api_url", function(data) {
        this.setState(data),
      });
  }

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

export default TickerTrader;

谁能概述这到底是哪里出了问题...我敢肯定这是简单化的。我试图通过使用文档来解决这个问题,但我似乎没有得到任何地方......

【问题讨论】:

  • 您能否提供您的 gulpfile 或相关部分。看起来可能是路径问题?
  • @MarkWilliams 这是唯一存在此问题的组件。我的index.js 文件包含:import TickerTrader from '.components/tradingdesk-ticker';,上面的类位于src/components 文件夹中名为tradingdesk-ticker.js 的文件中。不知道为什么这不起作用...
  • @MarkWilliams 如果这有助于 gulp 吐出这些错误:4:26 error Unable to resolve path to module '.components/tradingdesk-ticker' import/no-unresolved 4:26 error Missing file extension for ".components/tradingdesk-ticker" import/extensions 6:1 error Expected exception block, space or tab after '//' in comment spaced-comment

标签: javascript class reactjs components


【解决方案1】:

检查您的文件路径。

Cannot find module '.components/ticker-trader' from '/.../src'

看起来不对。

而不是.components/ticker-trader,它很可能应该寻找./components/ticker-trader。

【讨论】:

  • 这已解决了该特定问题。我可能需要开一张新票,因为我有一个新错误 - Unexpected token (14:6) while parsing file: /Users/.../src/components/tradingdesk-ticker.js。有什么想法吗?
  • 我现在看到了语法错误,this.setState(data) 后面不应该有逗号 - 我应该看到的非常基本的东西。道歉。
猜你喜欢
  • 1970-01-01
  • 2016-07-15
  • 2015-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-25
  • 2019-09-18
相关资源
最近更新 更多