#react-native #react-native-elements
#реагировать-родной #реагирующие-собственные-элементы
Вопрос:
У меня проблема с вводимым текстом, когда я пытаюсь изменить его, возврат к предыдущему значению работал нормально из функции боковой карты. но внутри он отказывается менять его значение. Я думаю, что он повторно отображает себя при изменении текста. итак, как мне изменить текст и сохранить имя
userdata.map((l, i) => (
<Input label='First Name' value={l.name}
onChangeText={setname} />
<Button title="Modify" onPress={() =>
modifyDetails(
name,
)
} />
))
Редактировать: Основываясь на коде Мохаммеда, я сделал это
<Modal
animationType="slide"
transparent={true}
visible={modalVisible}
onRequestClose={() => {
Alert.alert("Modal has been closed.");
}}
>
<ScrollView>
<View style={styles.centeredView}>
<View style={styles.modalView}>
<TouchableHighlight
onPress={() => {
setModalVisible(!modalVisible);
}}
>
<Text style={styles.textStyleClose}>X</Text>
</TouchableHighlight>
<UserDataWithCallback/> // inputs called here
</View>
</View>
</ScrollView>
</Modal>
Но теперь отображает пустые входные данные. Любое решение.
Комментарии:
1. тогда где же ваша функция отображения? и используете ли вы компоненты класса или крючки?
Ответ №1:
useCallback решит вашу проблему.
const userDataWithCallback = React.useCallback((l, i) => {
return (
<> // maybe a key prop is needed too
<Input
label='First Name'
value={l.name}
onChangeText={setname} />
<Button
title="Modify"
onPress={() => modifyDetails(name)} />
</>
)
}, [])
userdata.map((l, i) => (
userDataWithCallback(l, i)
))
Комментарии:
1. Но он возвращает пустое входное значение, сначала отображается журнал консоли l.name значение, а затем возвращает значение undefined.
2. могу ли я увидеть вашу функцию modifyDetails или даже ваш полный код?
3. Я просто вставляю код, а не приложение snack.expo.io/@mgonekar/edit-input-data
4. Я видел ваш код. и вот пример, который я сделал для вас. возможно, это может вам помочь snack.expo.io/e72qk4yEz . И я думаю, что мой ответ не более полезен для вашего случая.