React swiper not working: Uncaught TypeError: react_1.useEffect is not a function
React swiper not working: Uncaught TypeError: react_1.useEffect is not a function
我已经在我的 web 应用程序中安装了 react-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)
我不确定我错过了什么...
显然他们已经在使用 useEffect 挂钩了(太棒了!)。也许您可以直接导入它?
import React, { useEffect } from 'react';
编辑:
我使用的是 16.3.2 版本的 React。
Hooks 作为 16.8.0 版本的一部分发布,您可以通过升级 React 和 React-dom 16.8.0.
来使用它
我已经升级了:
npm upgrade react react-dom
更新到的版本是 "react-dom": "^16.8.6"
,现在一切正常。
因此,如果您想使用 react-swiper,请确保您的 React 和 React-dom 是最新的,以便可以使用 Hooks。
我已经在我的 web 应用程序中安装了 react-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)
我不确定我错过了什么...
显然他们已经在使用 useEffect 挂钩了(太棒了!)。也许您可以直接导入它?
import React, { useEffect } from 'react';
编辑:
我使用的是 16.3.2 版本的 React。
Hooks 作为 16.8.0 版本的一部分发布,您可以通过升级 React 和 React-dom 16.8.0.
来使用它我已经升级了:
npm upgrade react react-dom
更新到的版本是 "react-dom": "^16.8.6"
,现在一切正常。
因此,如果您想使用 react-swiper,请确保您的 React 和 React-dom 是最新的,以便可以使用 Hooks。