У меня есть ряд объектов, которые я отображаю в списке, у каждого поля есть некоторые свойства: objectID / key, weight, reps. Значения, которые я передаю своей функции обновления, - это не те, которые были изменены на клиенте, а те, которые находятся в моем состоянии. как я могу передать значение от моего клиента вместо этого?
export const updateUserData = async (exerciceID, date, weight, reps) => {
let userID = firebase.auth().currentUser.uid
let ref = firebase.database().ref('users/' + userID + '/exercices/' + exerciceID)
ref.update({
'date': date,
'weight': weight,
'reps': reps
}).then((data) => {
console.log('data: ', data)
}).catch((error) => {
console.log('error: ', error)
})
}
updateData(exerciceID, date, weight, reps) {
updateUserData(exerciceID, date, weight, reps)
this.readData()
}
return (
<ScrollView>
{Object.entries(this.state.results).map(([key, value]) => {
console.log(key, value)
return (
<View key={key} style={styles.listContainer}>
<View style={styles.row}>
<TextInput style={styles.input} placeholder="Kg" keyboardType="number-pad">{JSON.stringify(value.weight)}</TextInput>
<TextInput style={styles.input} placeholder="reps" keyboardType="number-pad">{JSON.stringify(value.reps)}</TextInput>
<Button color='red' styles={styles.button} title="Update" onPress={() => this.updateData(key, value.date, value.weight, value.reps)}></Button>
<Button color='red' styles={styles.button} title="delete" onPress={() => this.deleteData(key)}></Button>
</View>
</View>
)
})
}
</ScrollView>
)