React native 使用mobX的react应用程序中的状态更改
我的任务是在服务器数据尚未到达时显示下载组件React native 使用mobX的react应用程序中的状态更改,react-native,mobx,mobx-react,React Native,Mobx,Mobx React,我的任务是在服务器数据尚未到达时显示下载组件 export const LoaderComponent = () => ( <View style={styles.center}> <ActivityIndicator size="large" /> </View> ); const styles = StyleSheet.create({ center: { ..... }, });
export const LoaderComponent = () => (
<View style={styles.center}>
<ActivityIndicator size="large" />
</View>
);
const styles = StyleSheet.create({
center: {
.....
},
});
授权用户时,我显示下载组件,从服务器接收数据后,我隐藏下载组件。我人为地延迟了两秒钟
class AuthState {
@observable email: string = '';
@observable password: string = '';
@action authentication(data: IAuth) {
console.log('Action authentication');
LoaderState.showLoader();
....
setTimeout(() => {
LoaderState.hideLoader();
console.log('Change state loader', LoaderState.loading);
}, 2000);
}
}
export default new AuthState();
在下一个屏幕上,我检查是否设置了下载标志,我显示下载组件,如果没有,我隐藏它
export const ProvidersScreen = () => {
console.log(LoaderState.loading);
if (LoaderState.loading) {
return <LoaderComponent />;
}
return (
<View>
....
</View>
);
};
导出常量提供程序屏幕=()=>{
控制台日志(LoaderState.loading);
if(装载机状态装载){
返回;
}
返回(
....
);
};
问题是下载组件总是显示出来,当状态改变时,它不会隐藏。为什么下载组件没有隐藏?我认为原因是您的
ProvidersScreen
不是观测者组件,请尝试:
export const ProvidersScreen=观察者(()=>{
控制台日志(LoaderState.loading);
if(装载机状态装载){
返回;
}
返回(
....
);
});
我认为原因是您的提供者屏幕
不是一个观察者
组件,请尝试一下:
export const ProvidersScreen=观察者(()=>{
控制台日志(LoaderState.loading);
if(装载机状态装载){
返回;
}
返回(
....
);
});
您忘了添加观察员
添加以下代码:
import { observer } from "mobx-react";
export const ProvidersScreen = observer(() => {
console.log(LoaderState.loading);
if (LoaderState.loading) {
return <LoaderComponent />;
}
return (
<View>
....
</View>
);
});
从“mobx react”导入{observer};
导出常量ProvidersScreen=观察者(()=>{
控制台日志(LoaderState.loading);
if(装载机状态装载){
返回;
}
返回(
....
);
});
您忘了添加观察员
添加以下代码:
import { observer } from "mobx-react";
export const ProvidersScreen = observer(() => {
console.log(LoaderState.loading);
if (LoaderState.loading) {
return <LoaderComponent />;
}
return (
<View>
....
</View>
);
});
从“mobx react”导入{observer};
导出常量ProvidersScreen=观察者(()=>{
控制台日志(LoaderState.loading);
if(装载机状态装载){
返回;
}
返回(
....
);
});
我的仿真器出现错误类型错误:组件不是函数。(在“Component(props,refOrContext)”中,“Component”是对象的实例)
@MegaRoks您能详细解释一下情况吗?这看起来是另一个问题。我重建了这个项目,它成功了,它解决了我的问题。Thanks我在emulatortypeError中遇到错误:组件不是函数。(在“Component(props,refOrContext)”中,“Component”是对象的实例)
@MegaRoks您能详细解释一下情况吗?这看起来是另一个问题。我重建了这个项目,它成功了,它解决了我的问题。谢谢