Fra*_*vey 4 firebase typescript reactjs react-context
我有这个 .js 片段,我需要将其转换为 Typescript。
import React from 'react';
const FirebaseContext = React.createContext(null)
export const withFirebase = Component => props => (
<FirebaseContext.Consumer>
{firebase => <Component {...props} firebase={firebase} />}
</FirebaseContext.Consumer>
)
export default FirebaseContext
Run Code Online (Sandbox Code Playgroud)
我最好的猜测是
const FirebaseContext = React.createContext(null)
export const withFirebase = (Component: React.ComponentClass) => (props: any) => (
<FirebaseContext.Consumer>
{firebase => <Component {...props} firebase={firebase} />}
</FirebaseContext.Consumer>
)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用上下文时 – 通过传递一个new Firebase():
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import * as serviceWorker from './serviceWorker';
import App from './components/App';
import Firebase, { FirebaseContext } from './components/Firebase';
ReactDOM.render(
<FirebaseContext.Provider value={new Firebase()}>
<App />
</FirebaseContext.Provider>,
document.getElementById('root'),
);
serviceWorker.unregister()
Run Code Online (Sandbox Code Playgroud)
在这种情况下 - 我得到 Type 'Firebase' is not assignable to type 'null'.
您似乎没有为 指定任何类型createContext。向其添加 Firebase 类型应该可以工作
const FirebaseContext = React.createContext<Firebase | null>(null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1715 次 |
| 最近记录: |