找不到模块:无法解析'.../score-board-app/src/components'中的'./components/player'

jua*_*nli 1 javascript reactjs create-react-app

我使用Create-React-App构建一个小的React应用程序.完整代码存储在github中

我的文件结构:

src
  components
    Players.js
    Player.js
App.css
App.js
index.css
index.js
...
Run Code Online (Sandbox Code Playgroud)

App.js:

import React from 'react';
import './App.css';
import PropTypes from 'prop-types';// used to fix the error: 'PropTypes' is not defined
import Header from './components/Header';
import Players from './components/Players';

const App = (props) => (
  <div className="scoreboard">
    <Header title={props.title} />
    <Players />
  </div>
  );

App.propTypes = {
  title: PropTypes.string.isRequired
};


export default App;
Run Code Online (Sandbox Code Playgroud)

Player.js:

import React from 'react';

const Player = (props) => (
  <div className="player">
    <div className="player-name">
      Jim Hoskins
    </div>
    <div className="player-score">
      <div className="counter">
        <button className="counter-action decrement"> - </button>
        <div className="counter-score">31</div>
        <button className="counter-action increment"> + </button>
      </div>
    </div>
  </div>
);

export default Player;
Run Code Online (Sandbox Code Playgroud)

Players.js:

import React from 'react';
import Player from './components/Player';

const Players = () => (
  <div className="players">
    <div className="player">
      <div className="player-name">
        Jim Hoskins
      </div>
      <div className="player-score">
        <div className="counter">
          <button className="counter-action decrement"> - </button>
          <div className="counter-score">31</div>
          <button className="counter-action increment"> + </button>
        </div>
      </div>
    </div>
    <div className="player">
      <div className="player-name">
        Juan Li
      </div>
      <div className="player-score">
        <div className="counter">
          <button className="counter-action decrement"> - </button>
          <div className="counter-score">30</div>
          <button className="counter-action increment"> + </button>
        </div>
      </div>
    </div>
  </div>
)

export default Players;
Run Code Online (Sandbox Code Playgroud)

这条线import Player from './components/Player';导致了这个错误: 在此输入图像描述 但是如果我把这行放在App.js文件的顶部,它就不会报告这样的编译错误.我真的想知道我的代码确实存在什么问题?

JSi*_*ilv 7

您的文件路径错误.Player是在同一个文件夹中Players,所以你需要说import Player from './Player'

  • `./`只表示当前目录.所以从src目录中,如果你想指向`/ src/components/Player`,你会说`./ components/Player`.在`./ components`目录中,你只需要`./ Player`.如果您熟悉使用命令行,并使用`.`和`..`来引用当前和父目录,那么这里的概念是相同的. (2认同)