Я новичок, чтобы отреагировать, я пытаюсь настроить систему входа в систему с помощью redux. В моем компоненте Login я использую mapStateToProps
с методом connect
, который предлагает react-redux
.
Когда я пытался получить то, что мне нужно из магазина, он продолжал говорить, что это не определено. Это фрагмент моего компонента Login:
function mapStateToProps(state) {
return {
loggingIn: state.authentication.loggedIn,
};
}
function mapDispatchToProps(dispatch) {
return {
actions: bindActionCreators(userActions, dispatch),
alertActions: bindActionCreators(alertActions, dispatch),
};
}
export default connect(mapStateToProps, mapDispatchToProps)(Login)
Вот как я пытался комбинировать редукторы:
import { combineReducers } from 'redux';
import authentication from './userReducer';
import alert from './alertReducer'
const rootReducer = () => combineReducers({
authentication,
alert
});
export default rootReducer;
Однако я не смог получить доступ к реквизитам logginIn
в компоненте Login. После нескольких часов неудачных попыток я начал работать, убрав функцию стрелки:
const rootReducer = combineReducers({
Может кто-нибудь сказать мне, почему функция стрелки не работает? Спасибо
Обновление: вот как я импортировал корневой редуктор в файл index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
import { Provider } from 'react-redux'
import { createStore, applyMiddleware } from 'redux'
import thunk from 'redux-thunk';
import rootReducer from './reducers'
const store = createStore(rootReducer, applyMiddleware(thunk));
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>, document.getElementById('root'))
// If you want your app to work offline and load faster, you can change
// unregister() to register() below. Note this comes with some pitfalls.
serviceWorker.unregister();