如何使用 React 和 Redux 制作预加载器?
How to make preloader using React with Redux?
我有这样的问题:我为我的 React 应用程序制作了预加载器,当用户点击按钮 LoginIn
(在此之前输入他的电子邮件和密码)加载器开始工作,但是当用户输入错误的电子邮件或密码,或者服务器端发生了错误,它必须向用户显示错误,但在这一步中它显示预加载器不会消失并且它是合乎逻辑的,因为它设置 loadingAuth === true
,并且当 loadingAuth === true
它显示预加载器,但由于错误无法设置 false
。那么,在这种情况下我需要做什么?
轰动:
export const loginInWithEmail = (email, password) => (dispatch) => {
dispatch(loadingAuth(true)) //start preloader
fire.auth()
.signInWithEmailAndPassword(email, password)
.then(() => dispatch(loadingAuth(false))) //end preloader
.catch((error) => {
dispatch(getError(error));
});
};
分量:
const MyComponent = ({//props}) => {
return(
<div>
{isLoading === true
? <AuthPreloader />
: <Component/>
}
</div>
)
}
您已经在发生错误时调用了 dispatch(getError(error))
。假设初始错误状态值为 null
并且错误状态映射到名为 error
.
的 prop
然后您可以像使用 isLoading
一样使用您的错误道具,如下所示:
const MyComponent = ({//props}) => {
// ...
let content;
if (error) {
content = <p>There is an error</p>;
} else if (isLoading) {
content = <AuthPreloader />;
} else {
content = <Component />;
}
return(<div>{content}</div>)
}
我有这样的问题:我为我的 React 应用程序制作了预加载器,当用户点击按钮 LoginIn
(在此之前输入他的电子邮件和密码)加载器开始工作,但是当用户输入错误的电子邮件或密码,或者服务器端发生了错误,它必须向用户显示错误,但在这一步中它显示预加载器不会消失并且它是合乎逻辑的,因为它设置 loadingAuth === true
,并且当 loadingAuth === true
它显示预加载器,但由于错误无法设置 false
。那么,在这种情况下我需要做什么?
轰动:
export const loginInWithEmail = (email, password) => (dispatch) => {
dispatch(loadingAuth(true)) //start preloader
fire.auth()
.signInWithEmailAndPassword(email, password)
.then(() => dispatch(loadingAuth(false))) //end preloader
.catch((error) => {
dispatch(getError(error));
});
};
分量:
const MyComponent = ({//props}) => {
return(
<div>
{isLoading === true
? <AuthPreloader />
: <Component/>
}
</div>
)
}
您已经在发生错误时调用了 dispatch(getError(error))
。假设初始错误状态值为 null
并且错误状态映射到名为 error
.
然后您可以像使用 isLoading
一样使用您的错误道具,如下所示:
const MyComponent = ({//props}) => {
// ...
let content;
if (error) {
content = <p>There is an error</p>;
} else if (isLoading) {
content = <AuthPreloader />;
} else {
content = <Component />;
}
return(<div>{content}</div>)
}