TypeError:无法读取 null 的属性“调度”

Posted

技术标签:

【中文标题】TypeError:无法读取 null 的属性“调度”【英文标题】:TypeError: Cannot read property 'dispatch' of null 【发布时间】:2020-12-11 10:34:11 【问题描述】:

我在尝试将我的 firestore 连接到 reducer 后刚刚收到此错误,因为我注意到 cnt 从我的 firestore 获取任何数据,所以问题出在 index.js 文件中,因为它发生了在我在 v2 到 v3 之间进行迁移之后,当错误开始时,如果你能帮我找出问题,请帮忙

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, getFirestore, reduxFirestore  from 'redux-firestore'
import  ReactReduxFirebaseProvider, getFirebase from 'react-redux-firebase'
import fbconfig from './config/fbconfig'
import firebase from 'firebase/app'
const store = createStore(
  rootreducer,
  compose(
      applyMiddleware(thunk.withExtraArgument( getFirestore, getFirebase )),
      reduxFirestore(firebase, fbconfig)
  )
);

const rrfProps = 
  firebase,
  config: fbconfig,
  dispatch: store.dispatch,
  createFirestoreInstance
;

ReactDOM.render(
  <React.StrictMode>
    <Provider store=store><App />
    <ReactReduxFirebaseProvider...rrfProps>
      </ReactReduxFirebaseProvider>
      </Provider>
  </React.StrictMode>,
  document.getElementById('root')
);

serviceWorker.unregister();

这是我的 dashboard.js 导出添加时出现的错误

export default compose(
    connect(mapStateToProps),
    firestoreConnect([
        collection: 'projects'
    ])
)(Dashboard)

【问题讨论】:

你能在商店创建后尝试断点吗?可能在 rrfProps 对象声明部分,看看 store 是否未定义? 在商店创建前后尝试调试没有新的错误只是上面列出的这个。 is 应该在 ReactReduxFirebaseProvider 内?另外,您可以使用可选链编写 store?.dispatch 以避免抛出 TypeError。 我刚刚修复了它,通过将 ``` ``` 放入 ReactReduxProvider 一切正常 【参考方案1】:

我刚刚在 Kevin Moe Myint Myat 的帮助下将&lt;App/&gt; 放入ReactReduxFirebaseProvider 中,如下所示

ReactDOM.render(
  <React.StrictMode>
    <Provider store=store>
    <ReactReduxFirebaseProvider...rrfProps>
        <App />
      </ReactReduxFirebaseProvider>
      </Provider>
  </React.StrictMode>,
  document.getElementById('root')
);

serviceWorker.unregister();

【讨论】:

感谢您给予我的信任。很高兴帮助开发人员。如果您不介意,可以帮助支持我给您答案的评论吗?这里需要一些声望点。 :)

以上是关于TypeError:无法读取 null 的属性“调度”的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:无法读取 null 的属性(读取“classList”)

TypeError:无法读取 null 的属性(读取“1”)

TypeError:无法读取 null 的属性“userID”

TypeError:无法读取 null 的属性(读取“classList”)反应

TypeError:无法读取 null 的属性“uid”

× TypeError: 无法读取 null 的属性“名称”