У меня есть встроенный модуль приложения для отслеживания статистики здоровья. Этот пример для веса, но когда панель инструментов загружается, появляется пустой компонент с кнопкой для запуска модального редактора. Это дает textInput, где пользователь может ввести свой вес за день, и при сохранении он сохраняет это число в состояние для этого значения, и теперь он отображается на приборной панели.
Это работает точно так, как ожидалось, но яхотите также сохранить это в asyncStorage одновременно с текущей датой. Я хочу загрузить состояние для значений, если текущая дата соответствует значению хранилища для него, но сохранить его в течение дня.
Обычно, если пользователь просыпается в понедельник и регистрирует свой вес, я хочу егоотображать в приложении весь день, но когда они открывают его во вторник, они должны снова пусто, чтобы ввести его для этого дня, а затем значение TH должно оставаться на весь день во вторник и т. д.
Что мне нужносделать отсюда, чтобы достичь этого?
import React, { Component } from 'react';
import { StyleSheet, Text, View, Dimensions, Button, ScrollView, TouchableOpacity, TextInput, Alert} from 'react-native';
import { Pedometer } from "expo-sensors";
import {
LineChart,
BarChart,
PieChart,
ProgressChart,
ContributionGraph,
StackedBarChart
} from "react-native-chart-kit";
import PedometerChart from './PedometerChart';
import Icon from '@expo/vector-icons/Ionicons';
import MatIcon from '@expo/vector-icons/MaterialCommunityIcons';
import NumericInput from 'react-native-numeric-input';
import Modal from 'react-native-modal';
import moment from 'moment';
export default class Dashboard extends Component{
state = {
weight:'',
currentDate: new Date(),
markedDate: moment(new Date()).format("YYYY-MM-DD")
};
render() {
const today = this.state.currentDate;
const day = moment(today).format("dddd");
const date = moment(today).format("MMMM D, YYYY");
return(
<ScrollView>
<View style={styles.container}>
<View style={styles.mainContainer}>
<View style={styles.widgetContainer}>
<MatIcon name="scale-bathroom" size={50} />
<Text style={styles.titleText}>Weight</Text>
</View>
<View style={styles.widgetContainer}>
<Text>
<Text style={styles.textUnderlines}>
{this.state.weight}
</Text>
<Text style={styles.recordsTypes}>
lb
</Text>
</Text>
<TouchableOpacity
style={styles.recordButton}
onPress={this.toggleWeightModal}
>
<Text style={styles.recordText}>Record</Text>
</TouchableOpacity>
</View>
</View>
<Modal
isVisible={this.state.isWeightModalVisible}
backdropOpacity={0.7}
onBackdropPress={() => this.setState({ isWeightModalVisible: false })}
>
<View style={{ flex: 1 }}>
<View style={styles.recordingModals}>
<Text style={styles.titleText}>Weight for {date}</Text>
<TextInput
value={this.state.weight}
onChangeText={(weight) => this.setState({ weight })}
keyboardType="numeric"
underlineColorAndroid="#000"
style={styles.modalInput}
placeholder="lbs"/>
<TouchableOpacity style={styles.recordButtonModal} onPress={this.toggleWeightModal}>
<Text style={styles.recordText}>Save Entry</Text>
</TouchableOpacity>
</View>
</View>
</Modal>
</ScrollView>
) ;
}
}