在使用React渲染之前初始化数据

时间:2020-04-18 09:06:57

标签: javascript reactjs react-native

我是React Native的初学者。在我的项目中,我需要先设置数据然后再渲染并返回数据。

可以帮我吗?谢谢。

async function ReadData() {
   var RNFS = require('react-native-fs');
try {
if (await RNFS.exists(RNFS.DocumentDirectoryPath + '/logindata.json')) {
  var path = RNFS.DocumentDirectoryPath + '/logindata.json';
  var Status = await RNFS.readFile(path, 'utf8')
  var login = JSON.parse(Status)
  if (login.is_login == true) {
    return true
  } else {
    return false
  }
 } else {
  return false
 }
} catch{
 return false
}
}
const App = () => {
useEffect( () => {
var Login=ReadData()    
SetDirection();
SplashScreen.hide();
console.log(Login)
}, []);

1 个答案:

答案 0 :(得分:2)

这不是它与React一起工作的方式。 React将立即呈现您的UI并在加载或更新数据时自动更新。

但是,当数据加载完成时,您可以隐藏启动屏幕。 App可以将回调传递给ReadData,当数据准备就绪时,ReadData会调用此回调,然后App可以隐藏启动屏幕。

应用

useEffect( () => {
  const Login=ReadData(onDataReady)
  ...

onDataReady = () => {
  SplashScreen.hide();
  ....
}