Обновление после комментариев
Мой ответ ниже вводит в заблуждение, так как в то время я не правильно понял ваше намерение. Кроме того, мое объяснение о том, как не получить props
, как-то не так. Это правда, если мы не визуализируем компоненты, но здесь вы делаете это. Итак, проблема была не в этом.
Проблема в том, что ваш Loading
компонент не отображается после загрузки пользователей. На самом деле, вы никогда не выбираете пользователей :) Вот шаги вашего приложения (вероятно).
- Вы экспортируете функцию HOC, а не упакованную здесь. Он приходит из вашего
Users
файла, но не экспортирует настоящий компонент Users
. Это важно.
- Ваш родитель отображает первый раз, и он экспортирует экспортированный компонент HOC.
- Ваш дочерний компонент отрисовывается и попадает в
Loading
один, а не Users
один.
- В
Loading
ваша users
опора пуста, поэтому вы видите Идет загрузка ... .
- Ваш
Users
компонент никогда не рендерится снова. Таким образом, выборка пользователей не обновляет состояние.
Ваше решение извлекает извлечение из Users
и подает этот компонент. Вероятно, в родительском. Итак:
- Родитель выбирает пользователей, затем отображает себя и всех своих дочерних элементов.
- Ваш
Loading
компонент HOC визуализируется второй раз.
<ч />
Я не знаю, как вы планируете использовать этот HOC, но если я правильно понял (поскольку у меня нет такого опыта работы с HOC), в вашем случае проблема в том, что вы не передаете prop
в Loading
функция. Это потому, что вы не используете его как обычный компонент здесь. Это функция, а propName
здесь просто аргумент.
Когда мы визуализируем функцию без состояния, подобную этой:
<Loading propName="foo" />
тогда для нашей функции будет аргумент props
. Если мы не будем отображать это так, не будет аргумента props
и props.propName
. Если это не так, пожалуйста, исправьте это и объясните правильную логику. Итак, вы хотите сделать что-то вроде этого, вероятно:
Так что в вашем случае:
export default connect(
mapStateToProps,
mapDispatchToProps
)(Loading('users')(Users));
должно работать?
Или вам нужно правильно визуализировать ваш компонент в подходящем месте вашего приложения.