В вашем компоненте «Маршруты» вы захотите изменить
<Route path="courses" component={CoursesPage} />
до
<Route path='courses' render={(stuff) => (
<CoursePage courses={stuff} />
)}/>
Когда вы используете компонент, вы не можете добавить необходимые реквизиты, поэтому рендер будет хорошей альтернативой. Это также означает, что вам нужно будет добавить редукс-соединения в ваши маршруты. Js, поскольку вам нужно откуда-то получать эту информацию.
Другое, более простое, решение состоит в том, чтобы просто исключить курсы в качестве опоры и получать эту информацию напрямую из RedEx при загрузке CoursePage. Вы уже выполнили половину битвы с вашим mapStateToProps, поэтому вам не нужно иметь его с «isRequired» в ваших propTypes. Это в основном, когда Клуджо сказал, поэтому, если вы решите воспользоваться этим подходом, отдайте ему должное.
Я бы также рискнул предположить, что если «курсов» в вашем магазине не существует, ваш isRequired также запускается. Таким образом, вы можете хранить isRequired до тех пор, пока у вас есть данные для этого реквизита в магазине.