Reactjs 如何找到FireBaseAuth是否已使用v3.0.0?
在使用v3.0.0的react redux firebase中,有什么替代方法来确定auth是否已准备好首次渲染?本例中的问题是存储区不包含firebaseAuthIsReady,或者我遗漏了什么Reactjs 如何找到FireBaseAuth是否已使用v3.0.0?,reactjs,firebase,react-redux-firebase,Reactjs,Firebase,React Redux Firebase,在使用v3.0.0的react redux firebase中,有什么替代方法来确定auth是否已准备好首次渲染?本例中的问题是存储区不包含firebaseAuthIsReady,或者我遗漏了什么 //ReactReduxFirebaseProvider v3.0.0 const rrfConfig = { userProfile: 'users', attachAuthIsReady: true, firebaseStateName: 'firebase' } //const
//ReactReduxFirebaseProvider v3.0.0
const rrfConfig = {
userProfile: 'users',
attachAuthIsReady: true,
firebaseStateName: 'firebase'
}
//const store = configureStore(initialState, history, rrfConfig);
const store = configureStore(initialState, history);
const rrfProps = {
firebase,
config: rrfConfig,
dispatch: store.dispatch,
createFirestoreInstance
}
const MOUNT_NODE = document.getElementById('root')
//store.firebaseAuthIsReady.then(() => {
ReactDOM.render(
<MuiThemeProvider theme={theme}>
<Provider store={store}>
<ReactReduxFirebaseProvider {...rrfProps}>
<ConnectedRouter history={history}>
<App />
</ConnectedRouter>
</ReactReduxFirebaseProvider>
</Provider>
</MuiThemeProvider>,
MOUNT_NODE
);
//ReactReduxFirebaseProvider v3.0.0
常量rrfConfig={
userProfile:'用户',
真的,
firebaseStateName:“firebase”
}
//常量存储=配置存储(初始状态、历史记录、rrfConfig);
常量存储=配置存储(初始状态、历史);
常数rrfProps={
火基,
配置:rrfConfig,
调度:store.dispatch,
createFirestoreInstance
}
const MOUNT_NODE=document.getElementById('根')
//store.firebaseAuthIsReady.then(()=>{
ReactDOM.render(
,
挂载节点
);
请参阅://了解React-Redux Firebase v3.0。*
从“React”导入React;
从“react dom”导入react dom;
从“./App”导入应用程序;
从'redux'导入{createStore,applyMiddleware,compose};
从“react redux”导入{Provider,useSelector};
从“redux thunk”导入thunk;
从“./myproject/rootReducer”导入rootReducer;
从“redux firestore”导入{createFirestoreInstance};
从“react-redux firebase”导入{ReactRedux FirebaseProvider,isLoaded};
从“/myproject/config/fbConfig”导入firebase;
常量rrfConfig={}
const store=createStore(
减根剂,
谱写(
applyMiddleware(thunk)//如果您正在使用thunk
)
)
常数rrfProps={
火基,
配置:rrfConfig,
调度:store.dispatch,
createFirestoreInstance
}
函数authisload({children}){
const auth=useSelector(state=>state.firebase.auth)
如果(!isLoaded(auth))返回加载屏幕。。。;
返回儿童
}
ReactDOM.render(
新版本的实施方式在其文档中提到:
从“react-redux firebase”导入isLoaded,如下所示:
创建一个函数,当
尚未加载数据:
function AuthIsLoaded({ children }) {
const auth = useSelector((state) => state.firebase.auth); if
(!isLoaded(auth))
return (
<Wrapper>
<Loader />
</Wrapper>
);
return children; }
函数authisload({children}){
const auth=useSelector((state)=>state.firebase.auth);如果
(!已加载(验证))
返回(
);
返回子项;}
将应用程序包装在AuthIsLoaded组件中,如下所示:
<AuthIsLoaded>
<App />
</AuthIsLoaded>
这将与firebaseAuthReady函数一样工作。promise附件在新版本中已被删除。在v3.0.0中是否有其他方法可以实现这一点?@sbtgEmapStateToProps auth from firebase-state.firebase.auth,然后您可以使用isLoaded(this.props.auth)来自RRFW的功能当答案通过审查队列时,将某项内容标记为极低质量的选项之一(应删除)答案只包含一个链接,如果该链接断开,对将来的人来说将是无用的。解决此问题的方法是确保答案是自包含的,并且使用该链接仅提供附加信息。虽然此链接可以回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,则只有链接的答案可能无效。-理解,已进行更改!
import { isLoaded } from "react-redux-firebase"
function AuthIsLoaded({ children }) {
const auth = useSelector((state) => state.firebase.auth); if
(!isLoaded(auth))
return (
<Wrapper>
<Loader />
</Wrapper>
);
return children; }
<AuthIsLoaded>
<App />
</AuthIsLoaded>