reactjs - React Native:在渲染之前调度操作以获取数据(Redux)
问题描述
我正在开发一个以 redux 作为状态管理的反应原生应用程序并尝试以下实现:
- 在呈现应用程序之前从服务器 (Firebase) 获取数据。我有一个加载屏幕,工作正常,但我无法在其中调度我的函数以从服务器获取数据并直接写入当前状态。我没有看到状态发生了变化,但是当我再次保存代码(原样)时,状态会按预期更新。所以我认为我的代码是在第一次渲染完成后获取数据。
我无法弄清楚问题所在。因为我应该或不应该将我的调度代码放在“useeffect”钩子中?
import React, {useEffect} from 'react';
import {ActivityIndicator, View} from 'react-native';
import {Images, useTheme} from '@config';
import {Image, Text} from '@components';
import styles from './styles';
import {ApplicationActions} from '@actions';
import { store } from '/Users/user1/KitaList/app/store/index.js'
export default function Loading({navigation}) {
const {colors} = useTheme();
const onProcess = () => {
setTimeout(() => {
navigation.replace('Main');
}, 2500);
};
useEffect(() => {
store.dispatch(ApplicationActions.ongetKitadata()); //Executing dispatchting getting data
onProcess();
}, []);
return (
<View style={styles.container}>
<View style={{alignItems: 'center'}}>
<Image source={Images.logo} style={styles.logo} resizeMode="contain" />
<Text title1 style={{marginTop: 10}}>
MyApp
</Text>
<Text headline primaryColor style={{marginTop: 10}}>
MyApp DIRECTORY
</Text>
</View>
<ActivityIndicator
size="large"
color={colors.text}
style={{
position: 'absolute',
top: 260,
left: 0,
right: 0,
bottom: 0,
justifyContent: 'center',
alignItems: 'center',
}}
/>
</View>
);
}
解决方案
推荐阅读
- android - 如何在android studio中打开没有webview的Pdf url
- javascript - 如何使用 Google action conv.ask 获取用户的响应并转移到流程
- php - 在 Mac High Sierra 中使用 Homebrew 为 php 安装 mcrypt 扩展
- acumatica - 库存属性值 DAC
- javascript - D3.js在绘制后更改容器的宽度
- mysql - 在状态中存储大量数据?
- r - 如何以 pdf 格式将地图上列出的数据制成表格?
- sql - 使用两个表随机化 Sql 查询
- mongodb - 帆。在sails-mongo(mongodb)上创建(和管理)索引的最佳方法
- python - Python 和 mySQL 问题