Я думаю, что ваш редуктор настроен неправильно. Вы можете передать все начальные состояния внутри переменной initialState
следующим образом.
//reducer.js
import { combineReducers } from "redux";
const initialState = {
boxNumber: 40,
};
const boxReducer = (state = initialState, action) => {
switch (action.type) {
case "SET_BOX_NUMBER":
return {
...state,
boxNumber: action.payload,
};
default:
return state;
}
};
export default combineReducers({
boxReducer,
});
Вот так должен выглядеть ваш файл индекса. js:
//index.js
import React from "react";
import ReactDOM from "react-dom";
import Slider from "./Slider.js";
import { Provider } from "react-redux";
import { createStore } from "redux";
import reducer from "./redux/reducer";
const store = createStore(reducer);
ReactDOM.render(
<Provider store={store}>
<Slider />
</Provider>,
document.getElementById("root")
);
Вам нужно обновить mapStateToProps
в Slider.js
для доступа к состояниям вашего редуктора.
//Slider.js
const mapStateToProps = (state) => {
return { boxNumber: state.boxReducer.boxNumber };
};
Это простое исправление. Когда ваше приложение станет больше, вам понадобится больше редукторов, и поэтому лучше сохранить для этого отдельный файл.