Состояние Redux доступно только для чтения

#react-native #redux #state

#react-native #redux #состояние

Вопрос:

Я пытаюсь передать результат нажатия кнопки в состояние Redux. У пользователя есть выбор между «Нет»и «Да»

Я хочу добавить его в состояние, а затем перейти к следующему экрану. Ниже показано, как я объявляю состояние.

     const [state, setState ] = useState ({
      isDisabled: true,
      showAnswer: false,
      uuid: '',
    })
    const [value, onChange] = useState('')
    const [codeValue, onCodeChange] = useState('')
    state = {
        animation: new Animated.Value(0),
      };
      const handleOnChange = (name, value) => {
        setState({
        ...state,
            [name] : value,
        });
        console.log([name],':',value)
    };
 

Это кнопка.

     <Button       
       title={"No"}
        style = {GettingToKnowYouStyle.choices}
        onPress={() => navigation.navigate ('Employment')}
       >
       No
     </Button>
 

Я знаю, что здесь я делаю много ошибок, пожалуйста, помогите.

Комментарии:

1. Ничто в вашем коде не предполагает, что вы используете redux.

Ответ №1:

осторожно, вы здесь что-то путаете! useState относится к состоянию компонента, а не к состоянию redux.

вам нужно состояние redux (иначе reducer ), по крайней мере, одно action для отправки и что-то для обработки побочных эффектов (я рекомендую либо rxjs и redux-observable либо saga ).

вызывается перехват в redux then useDispatch , как из документации.

Я предлагаю следующее: отправьте действие 1 с ответом, обновите состояние. после успешного сокращения состояния отправьте действие 2, обрабатывающее изменение маршрута. попробуйте прочитать документы (базовый учебник — хороший момент для начала) и вернитесь с подробными вопросами, если они у вас есть.

Ответ №2:

Для изменения состояния redux следует использовать useDispatch().