Проблема с редукцией и редуктором

Я новичок в React-Redux, и у меня проблема со связью между редуктором и магазином.

Это идея, на которой я основываюсь:

У меня есть компонент «Вход», который содержит кнопку и два текстовых ввода, и когда я нажимаю на нее, я отправляю действие в редуктор. Затем я обновляю состояние и снова отправляю его в пользовательский интерфейс (это то, как я понимаю логику, поправьте меня, если я ошибаюсь). Проблема возникает в редьюсере, он никогда не входит туда, но да в файл действия (проверено с помощью console.infos). Может коннект не работает? или есть в магазине часть?

Вот отпишусь как я это сделал

action.js, только с двумя операциями

const logout = () => {
 return {
 type: "USER_LOGOUT",
 payload: false,
};
};

const login = () => {
 return {
type: "USER_LOGIN",
payload: true,
};
};

export { logout, login };

Реализация reducer.js, изменение только одного логического значения

const initialState = {
logged: false,
};

export default (state = initialState, action) => {
 if (action.type === "USER_LOGOUT") {
  return {
   ...state,
   logged: false,
 };
}

if (action.type === "USER_LOGIN") {
 return {
   ...state,
   logged: true,
 };
}

return state;
};

index.js (магазин), вот как я объявляю часть магазина

import { createStore, combineReducers } from "redux";
import loginReducer from "./reducer";

const reducers = combineReducers({
loginReducer,
});

const store = createStore(reducers);

export default store;

Login.js, только сенсорная часть

import { logout, login } from "../redux/actions";

import { connect } from "react-redux";

...

connect(null, { logout, login }, Login);

...

<TouchableOpacity>
 ...
 onPress = {() => checkValidation()}
 ...
</TouchableOpacity>

Вот checkValidation, который вызывает действие "логин"

checkValidation() =>

...
login();
...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
34
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не отправляете действие. Чтобы Redux узнал об экшене, вы должны отправить его.

Если вы используете компонент класса, вам нужно подключите компонент и передайте ему действие отправки из избыточности.

Я предлагаю вам использовать хуки, потому что это проще.

1-Импортируйте хук useDispatch

import { useDispatch } from "react-redux";

2-Создать рассылку:

const dispatch = useDispatch();

3-Отправьте свое действие: проверитьпроверка() =>

...
// Since your function login already returns the action object:
    dispatch(login());
...

Другие вопросы по теме