Я использую React-Redux для Redux вместе с React.Консольный журнал в App.js для this.props и this.props.fetchProducts возвращает пустой объект и неопределенный соответственно.
Первый вопрос, который я хочу задать, - почему это так и как я могу это исправить.
Второй вопрос, который у меня возникает, - как передать хранилище в CartPage и MainPage?Или это не рекомендуется, поскольку мы должны использовать connect для передачи любого значения состояния, которое нам нужно, вместо этого нашему компоненту?
Большое спасибо.
index.js
const rootReducer = combineReducers({
ProductsReducer,
PriceReducer,
UserReducer
});
const store = compose(applyMiddleware(...middlewares))(createStore)(rootReducer);
ReactDOM.render(
<Provider store={store}>
<BrowserRouter>
<App />
</BrowserRouter>
</Provider>,
document.getElementById('root'));
App.js
class App extends Component {
constructor(props) {
super(props);
console.log(this.props);
console.log(this.props.fetchProducts);
}
render() {
return (
<Switch>
<Route exact path='/cart' render={() => <CartPage />} />
<Route exact path='/' render={() => <MainPage />} />
</Switch>
);
}
}
AppContainer
import { connect } from 'react-redux';
import { FetchProducts } from '../actions/FetchProducts';
import App from '../App';
const mapDispatchToProps = dispatch => ({
fetchProducts: () => dispatch(FetchProducts())
});
export default connect(null, mapDispatchToProps)(App);