const configureStore = history => {
const store = createStore(
rootReducer(history),
composeWithDevTools(
applyMiddleware(routerMiddleware(history), sagaMiddleware, logger)
)
);
sagaMiddleware.run(rootSaga);
return store;
};
const withProductsAndCustomers = Component => {
class ProductsAndCustomers extends React.Component {
// методы
render() {
return <Component {...this.props}/>;
}
}
return connect(mapStateToProps, mapDispatchToProps)(ProductsAndCustomers);
}
const mapStateToProps = state => {
return {
ProductsAndCustomers: state
}
}
const mapDispatchToProps = dispatch => {
return {
onRequestProducts: () => dispatch()
};
}
import ScrollArea from 'react-scrollbar'
import UserList from './components/UserList'
class App extends Component {
addUser = (e) => {
this.scrollArea.scrollBottom();
}
render() {
return (
<ScrollArea ref={(ref) => this.scrollArea = ref}>
<UserList />
</ScrollArea>
)
}
}
this.setState({ screen: <Random key={Math.random()} /> });
import React from "react";
import { withRouter } from "react-router-dom";
const Nav = ({ history }) => (
<nav>
<div onClick={() => history.push('/')}>Истории</div>
<div onClick={() => history.push('/bilboard')}>Билборд</div>
<div onClick={() => history.push('/loved')}>Избранное</div>
</nav>
)
export default withRouter(Nav);
однако я придумал и альтернативное решение: написать функцию (или класс с методами), которая бы имела доступ к store сама по себе. Вызывая эту функцию в любом месте приложения, не приконнекченный компонент будет получать актуальные данные из state.