[英]Using require() to load functional component
My app takes a lot of time(15 secs 2GB RAM/10 secs 3GB RAM/ 5 secs 4GB RAM) for cold startup and I am trying to reduce this time.我的应用程序需要很长时间(15 秒 2GB RAM/10 秒 3GB RAM/5 秒 4GB RAM)进行冷启动,我正在努力减少这个时间。 Inspired by Inline Requires and this I am trying to load some functional components on-demand.
受到Inline Requires 的启发,我正在尝试按需加载一些功能组件。 So I am doing this as -
所以我这样做 -
DatePicker.tsx日期选择器.tsx
import React from 'react';
import DateTimePicker, { DateTimePickerProps } from 'react-native-modal-datetime-picker';
...
export const DatePicker: React.FC<DatePickerProps> = (props) => {
return (
<DateTimePicker
date={props.date}
isVisible={props.isDateTimePickerVisible}
...
/>
);
}; };
AddRecord.tsx添加记录.tsx
//Intentionally commented import
//import { DatePicker } from '@aph/mobile-patients/src/components/ui/DatePicker';
...
let DatePicker: any = null;
export const AddRecord: React.FC<AddRecordProps> = (props) => {
const [isDateTimePickerVisible, setIsDateTimePickerVisible] = useState<boolean>(false);
return(
<View>
<Text onPress={() => {
setIsDateTimePickerVisible(true);
if (DatePicker == null) {
DatePicker = require('@aph/mobile-patients/src/components/ui/DatePicker');
}
Alert.alert('Clicked');
console.log('check DatePicker ', DatePicker);
}}> Click Me </Text>
{isDateTimePickerVisible ? (
<DatePicker
isDateTimePickerVisible={isDateTimePickerVisible}
...
/>
) : null}
</View>
);
}
But simulator is reporting an error但是模拟器报错
Logging DatePicker object -记录 DatePicker object -
setIsDateTimePickerVisible is setting true before DatePicker has been loaded. setIsDateTimePickerVisible在 DatePicker 加载之前设置为 true。
I am not sure but I guess it might be:我不确定,但我想可能是:
<Text onPress={() => {
if (DatePicker == null) {
DatePicker = require('@aph/mobile-patients/src/components/ui/DatePicker');
}
Alert.alert('Clicked');
console.log('check DatePicker ', DatePicker);
setIsDateTimePickerVisible(true); // <- update the state after
}}> Click Me </Text>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.