#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().