React swiper не работает: Uncaught TypeError: Reaction_1.useEffect не является функцией - PullRequest
0 голосов
/ 29 марта 2019

Я установил response-id-swiper в своем веб-приложении, выполнив следующие действия:

https://www.npmjs.com/package/react-id-swiper

Установка: npm install --save react-id-swiper@latest swiper@latest

И я создал следующий компонент:

import React from 'react';
import Swiper from 'react-id-swiper/lib/ReactIdSwiper.full';

const SimpleSwiper = () => (
  <Swiper>
    <div>Slide 1</div>
    <div>Slide 2</div>
    <div>Slide 3</div>
    <div>Slide 4</div>
    <div>Slide 5</div>
  </Swiper>
)

export default SimpleSwiper;

Импортировать компонент в App.js:

import React from 'react';
import {Route} from 'react-router-dom';

import LandingPage from './templates/LandingPage';
import SimpleSwiper from "./templates/Swiper";

class App extends React.Component{

  render(){
    return(

    <div>
      <Route path="/" exact component={LandingPage} />
      <Route path="/slide" component={ () => 
        <SimpleSwiper />}  
      />
    </div>
  )
  }

}

export default App;

Когда я получаю к нему доступ в браузере http://localhost:3000/slide отображается следующая ошибка:

Uncaught TypeError: react_1.useEffect is not a function
    at ReactIdSwiper (ReactIdSwiper.full.js:104)
    at mountIndeterminateComponent (react-dom.development.js:13381)
    at beginWork (react-dom.development.js:13821)
    at performUnitOfWork (react-dom.development.js:15864)
    at workLoop (react-dom.development.js:15903)
    at HTMLUnknownElement.callCallback (react-dom.development.js:100)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:138)
    at invokeGuardedCallback (react-dom.development.js:187)
    at replayUnitOfWork (react-dom.development.js:15311)
    at renderRoot (react-dom.development.js:15963)

Я не уверен, что я пропустил ...

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

РЕДАКТИРОВАТЬ:

Я использовал версию React 16.3.2.

Крючки выпущены как часть версии 16.8.0, и вы можете использовать их, обновив React и React-dom 16.8.0.

Я обновил его:

npm upgrade react react-dom

Версия, которая была обновлена ​​до "react-dom": "^16.8.6", и теперь все отлично работает.

Так что, если вы хотите использовать response-swiper, убедитесь, что ваш React иReact-dom обновлен, поэтому можно использовать крючки.

0 голосов
/ 29 марта 2019

Видимо, они уже используют хуки useEffect (потрясающе!). Может быть, вы можете импортировать его напрямую?

import React, { useEffect } from 'react';
...