useSelector 无法从“react-redux”导出

Pir*_*mer 4 firebase reactjs 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();
    
    
})
Run Code Online (Sandbox Code Playgroud)

我尝试重新启动 npm start,再次安装react-redux,然后重新启动 npm start,运行 npm install 并关闭 Vscode,然后重新打开它。我尝试过,我很困惑为什么它不起作用,但请帮我解决这个问题,谢谢:D。

Nic*_*ola 5

React Redux hooks 是在 v7.1.0 中首次添加的useSelector,因此如果您像您所说的那样使用 React Redux v6.14.6,则无法导入hook。

看起来您正在开发一个类似教程的项目,所以我想您对软件包版本没有任何限制,并且可以更新它而不会出现重大问题。请注意,React Redux 7.1 需要 React 16.8.3 或更高版本,因此还要检查文件中的 React 版本package.json

跑步:

npm uninstall react react-redux
npm i react react-redux
Run Code Online (Sandbox Code Playgroud)

然后检查您的package.jsonifdependencies条目包含"react-redux": "^7.2.1""react": "^16.13.1"