Передача state, Redux
Не могу разобраться, как получить доступ к state в Redux в дочерних компонентах React. Определяю склад для всего приложения в файле index.js, в файле app.js расписываю структуру. Тут содержаться все компоненты, в которых должны меняться состояния. Склад создается и виден в index.js. Но в компоненте List.js к этому складу нет доступа.Что я делаю не так, как исправить?
PS. Неужели для того, чтобы работать со складом в компонентах, которые находятся внутри всего приложения, нужно передавать склад как параметр: от index.js в app.js, от app.js в List.js.
index.js
import React from 'react';
import ReactDom from 'react-dom';
import {connect,Provider} from 'react-redux'
import {createStore} from "redux";
import {reducer} from "./redux/reducer";
import App from './app.js'
const store = createStore(reducer,
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
);
ReactDom.render(
<Provider store={store}>
<App/>
</Provider>,
document.getElementById('App')
);
app.js
import React from 'react';
import List from './components/List.js';
export default function () {
return(
<section>
<List props={props}/>
</section>
);
}
List.js
import React from 'react';
import {connect} from 'react-redux';
const List = props => {
console.log(props.getState()); // props.getState is not a function
...
};
const mapStateToProps = state => {
console.log(state);
return state
};
export default connect(mapStateToProps, null)(List)
Ответы (1 шт):
Автор решения: dresser
→ Ссылка
Попробуйте так.
app.js
import React from 'react';
import List from './components/List.js';
export default function () {
return(
<section>
<List />
</section>
);
}
List.js
import React from 'react';
import {connect} from 'react-redux';
const List = props => {
return console.log(props.globalState);
};
const mapStateToProps = state => {
return {
globalState: state // state - Ваш весь store
}
};
export default connect(mapStateToProps)(List)