Как установить новое значение TextInput? - PullRequest
0 голосов
/ 06 марта 2019

Раньше я менял ввод текста с локального состояния. Как это:

         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

1 Ответ

0 голосов
/ 06 марта 2019

По словам кого-то лучше меня

Используйте React для эфемерного состояния, которое не имеет значения для приложения в глобальном масштабе и не мутирует сложным образом.Например, переключение в некотором элементе пользовательского интерфейса, состояние ввода формы.Используйте Redux для состояния, которое имеет глобальное значение или видоизменяется сложным образом.Например, кэшированные пользователи или пост-черновик.- Дан Абрамов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...