2017-06-18 3 views
0

こんにちは、私はreactjsのnewbです。他のライブラリからいくつかのコードを引き出して、どのように動作するのか見てみたかったのです。残念ながら、私は反応反応型カルーセルを使用しようとしています。私はこれが本当に簡単な質問であることを理解していますが、私はかなり長い間このことに固執していますし、ヒントに感謝しています!どうもありがとうございます!Reactjs - react-reponsive-carousel

ここ

は、私は現在しようとしているものです:

をIndex.jsx

import React from 'react'; 
import {render} from 'react-dom'; 
import AwesomeComponent from './AwesomeComponent.jsx'; 
import CarouselComponent from './Carousel.jsx' 

class App extends React.Component { 
    render() { 
     return (
      <div> 
       <p>Hello React!</p> 
       <AwesomeComponent /> 
       <CarouselComponent /> 
      </div> 
     ); 
    } 
} 

render(<App/>, document.getElementById('container')); 

Carousel.jsx:

import React from 'react'; 
import Carousel from 'react-responsive-carousel'; 

class CarouselComponent extends React.Component { 
    render() { 
     return (
      <div> 
       <Carousel> 
        <div> 
         <img src="assets/1.jpeg" /> 
         <p className="legend">Legend 1</p> 
        </div> 
        <div> 
         <img src="assets/2.jpg" /> 
         <p className="legend">Legend 2</p> 
        </div> 
        <div> 
         <img src="assets/3.jpg" /> 
         <p className="legend">Legend 3</p> 
        </div> 
       </Carousel> 
      </div> 
     ); 
    } 
} 
export default CarouselComponent; 

I「はエラーコンソールで見る今すぐ:

Warning: React.createElement: type is invalid -- expected a string (for 
built-in components) or a class/function (for composite components) but got: 
undefined. You likely forgot to export your component from the file it's 
defined in. Check the render method of `CarouselComponent`. 
    in CarouselComponent (created by App) 
    in div (created by App) 
    in App 

答えて

1

react-responsive-carouselを中括弧でインポートしてみてください。 Like:

import { Carousel } from 'react-responsive-carousel'; 
+0

ありがとうございます!大括弧を付けると違いは何ですか?参照可能にしていますか? – Tim

+0

「反応応答カルーセル」カルーセルコンポーネント[githubのソースコード](https://github.com/leandrowd/react-responsive-carousel/blob/v3.1.19/src/components/Carousel.js)を確認しました。デフォルトのエクスポートがあるように見えます。これは、中括弧をインポートするときに中括弧を使用する必要がないことを意味します。なぜ、それがあなたのために機能しないのか分かりません。デフォルトでコンポーネントがエクスポートされていない場合は、中カッコが必要です。コンポーネントをインポートするときにその名前を指定する必要があります。 [詳細な説明](https://stackoverflow.com/questions/36795819/when-should-i-use-curly-braces-for-es6-import)です。 – Mustafa