首页 > 解决方案 > 类型 '{ children?: ReactNode; 上不存在属性 'firebase' }' 如何正确注释?

问题描述

我通过像这样的高阶组件提供我的 firebase 对象:

const FirebaseContextInterfaceLocal: FirebaseContextInterface = {
  value: new Firebase()
}

ReactDOM.render(
  <Router history={history}>
    <FirebaseContext.Provider value={FirebaseContextInterfaceLocal}>
      <App />
    </FirebaseContext.Provider>
  </Router>,
  document.getElementById('root')
)

之后我像这样使用它:

const ForgotPassword: React.FC = ({ firebase }) => {

}

export default withFirebase(ForgotPassword)

但我收到以下错误:

Property 'firebase' does not exist on type '{ children?: ReactNode; }'.

我试图找出如何正确注释它,但我找不到任何好的解释。任何帮助将不胜感激!

标签: reactjstypescriptfirebase

解决方案


使用value密钥而不是 firebase

const ForgotPassword: React.FC = ({ value }) => {

}

export default withFirebase(ForgotPassword)

或尝试将属性更改FirebaseContextInterfaceLocal为:

const FirebaseContextInterfaceLocal = {
  firebase: new Firebase()
}

ReactDOM.render(
  <Router history={history}>
    <FirebaseContext.Provider firebase={FirebaseContextInterfaceLocal.firebase}>
      <App />
    </FirebaseContext.Provider>
  </Router>,
  document.getElementById('root')
)

所以你可以这样做:

const ForgotPassword: React.FC = ({ firebase }) => {

}

export default withFirebase(ForgotPassword)

推荐阅读