Раньше я менял ввод текста с локального состояния. Как это:
state = {name: ''}
...
<AddEditFormInputs
onChangeText={name => this.setState({ name })}
textStateValue={this.state.name}
/>
Это компонент, и выше, как я его называю:
const AddEditFormInputs = ({
onChangeText,
textStateValue,
}) => (
<View style={styles.InputContainer}>
<TextInput
value={textStateValue}
onChangeText={onChangeText}
/>
</View>
);
Но теперь мне нужно сделать то же самое с Redux. Я пытаюсь сделать это так:
<AddEditFormInputs
onChangeText={name => editPassengerDataActionActionHandler({ name })}
textStateValue={editPassengerData.name}
/>
...
export default compose(
connect(
store => ({
editPassengerData: store.popupsModals.editPassengerData,
}),
dispatch => ({
editPassengerDataActionActionHandler: data => {
dispatch(editPassengerDataAction(data));
},
}),
),
)(PassengerFormModal);
Я вижу, что ввод содержит значение editPassengerData.name
, но когда я пытаюсь изменить это значение, он возвращается к старому значению, например, если я что-то набираю, он удаляет то, что я набрал. Я знаю, что это возможно, потому что я мутирую данные. Но что я могу сделать, чтобы изменить значение этого входа?
Должно ли это быть только с локальным состоянием или я могу сделать это с Redux?
Я использую TextInput -> https://facebook.github.io/react-native/docs/textinput