Ваша проблема в том, как вы экспортируете свой основной модуль и как вы подключаете redux для использования реквизита. Я приведу вам следующий пример, чтобы дать вам представление об использовании redux ... `
actions.js
import * as ACTIONS from './types';
export const reset = () => {
return { type: ACTIONS.RESET_STATE };
};
export const saveProfile = profile => {
return { type: ACTIONS.SAVE_PROFILE, payload: profile };
};
export const saveSettings = settings => {
return { type: ACTIONS.SAVE_SETTINGS, payload: settings };
};
reducer.js
import * as ACTIONS from './../actions/types';
const INITIAL_STATE = {
profile: 0,
settings: 0
};
export default (state = INITIAL_STATE, action) => {
switch (action.type) {
case ACTIONS.RESET_STATE:
return { ...INITIAL_STATE };
case ACTIONS.SAVE_PROFILE:
return { ...state, profile: action.profile };
case ACTIONS.SAVE_SETTINGS:
return { ...state, settings: action.settings };
default:
return state;
}
};
index.js / integrareducers
import { combineReducers } from 'redux';
import reducers from './reducer.js';
export default combineReducers({
reducer: reducers
});
и использование в вас Главный класс
import { saveProfile, saveSettings } from './../redux/actions/index.js';
class Main extends Component {
constructor(props) {
super(props);
this.state = {
saveProfile: this.props.profile,
saveSettings: this.props.settings
};
{.....
.....}
const mapStateToProps = ({ reducers }) => {
const { profile, settings } = reducers;
return { profile, settings };
};
export default connect(mapStateToProps, { saveProfile, saveSettings })(Main);
Надеюсь, это поможет вам