如何解决useSelector无法从“ react-redux”导出
我遇到一个错误,提示Can't import 'UseSelector' from react-redux
。我正在做的是一个名为入门的小项目,我正在使用firebase并对此进行反应,这是错误所在的代码文件
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
import { createStore,applyMiddleware,compose } from 'redux';
import rootReducer from './store/reducers/rootReducer'
import { Provider } from 'react-redux'
import thunk from 'redux-thunk'
import {createFirestoreInstance,reduxFirestore,getFirestore } from 'redux-firestore'
import { ReactReduxFirebaseProvider,getFirebase,reactReduxFirebase } from 'react-redux-firebase';
import firebase from 'firebase/app'
import fbConfig from './config/fbConfig'
import { useSelector } from 'react-redux'
import { isLoaded } from 'react-redux-firebase';
`
const store = createStore(rootReducer,compose(
applyMiddleware(thunk.withExtraArgument({ getFirebase,getFirestore })),reduxFirestore(fbConfig),reactReduxFirebase(fbConfig,{attachAuthIsReady:true,firebase:'firebaseReducer'}) )
);
const rrfProps = {
firebase,config: fbConfig,dispatch: store.dispatch,createFirestoreInstance,userProfile: 'users',// where profiles are stored in database
presence: 'presence',// where list of online users is stored in database
sessions: 'sessions'
}
function AuthIsLoaded({ children }) {
const auth = useSelector(state => state.firebase.auth)
if (!isLoaded(auth)) return <div>Loading Screen...</div>;
return children
}
store.firebaseAuthIsReady.then(() => {
ReactDOM.render(
<Provider store={store}>
<ReactReduxFirebaseProvider {...rrfProps}>
<AuthIsLoaded>
<App />
</AuthIsLoaded>
</ReactReduxFirebaseProvider>
</Provider>,document.getElementById('root'));
serviceWorker.unregister();
})
我尝试重新启动npm start,再次安装react-redux,然后重新启动npm start,运行npm install并关闭Vscode,然后重新打开它。我尝试过的方法令我非常困惑,为什么它不起作用,但是请帮助我解决此问题,谢谢:D。
解决方法
你必须更新你的 redux 和 react-redux 版本。 另外,请记住,您不能在功能或箭头组件之外使用“useSelector”挂钩,并且它必须是来自 redux 的子项。
, React Redux hooks were first added in v7.1.0,因此如果您按照所说使用React Redux v6.14.6,则无法导入"message"
钩子。
似乎您正在从事类似教程的项目,因此我想您对软件包版本没有任何限制,并且可以对其进行更新而不会出现重大问题。
请注意React Redux 7.1 requires React 16.8.3 or later,因此也请检查useSelector
文件中的React版本。
运行:
package.json
然后检查您的npm uninstall react react-redux
npm i react react-redux
是否包含package.json
和dependencies
的{{1}}项。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。