Итак, я новичок в Redux и пытаюсь заставить эту базовую модель работать так, чтобы я мог быстро работать над небольшим личным проектом, я все настроил и у меня нет ошибок, но я пытаюсь проверить и свою функциюне работает, поэтому я надеялся, что кто-то может указать на то, что я пропустил.
Я следовал нескольким различным учебникам, и у каждого свой подход, так что я немного потерял, поэтому я извиняюсь за это.
Мой store.js выглядит так
import rootReducer from "./reducers";
import thunk from "redux-thunk";
const store = createStore(rootReducer, applyMiddleware(thunk));
export default store;
Я использовал ОбъединениеReducers в моей папке index.js в редукторах, а auth: указывает на файл authReducer.js, которыйthis
const INIT_STATE = {
email: "",
password: "",
isLoggedIn: "false"
};
export default (state = INIT_STATE, action) => {
switch (action.type) {
case IS_LOGGED_IN_CHANGE:
console.log(action);
return {
isLoggedIn: action.value
};
default:
return state;
}
};
Теперь, к чему я стремлюсь, это иметь кнопку, которая изменяет исходное состояние «IsLoggedIn» на истинную строку вместо ложной, я зашел в свою папку действий и сделалauthActions.js, который выглядит так
import { IS_LOGGED_IN_CHANGE } from "../actions/types";
import store from "../store";
export const isLoggedInChange = value => {
return dispatch => {
dispatch({
type: IS_LOGGED_IN_CHANGE,
value
});
};
};
И, наконец, я хочу показать вам свою страницу компонента, которая показывает все это, Это выглядит так
import { connect } from "react-redux";
import styles from "./Landing.module.css";
import { isLoggedInChange } from "../../actions/authActions";
class Landing extends Component {
makeTrue = () => {
isLoggedInChange("true");
};
constructor(props) {
super(props);
this.state = {
email: "",
password: ""
};
}
render() {
return (
<div className={styles.background}>
<button onClick={this.makeTrue}>MAKE TRUE</button>
{this.props.isLoggedIn}
</div>
);
}
}
const mapStateToProps = state => ({
isLoggedIn: state.auth.isLoggedIn
});
const mapDispatchToProps = dispatch => ({
isLoggedInChange: value => dispatch(isLoggedInChange(value))
});
export default connect(
mapStateToProps,
mapDispatchToProps
)(Landing);
Можете ли вы сказать, если яупал что-нибудь сделать? почему кнопка не меняет состояние магазина? ТИА