2016-11-23 2 views
0

У меня есть два компонента, каждый из которых связан через контейнеры, и оба имеют реквизиты, отображаемые через предоставленное состояние.Рериверсы дочерних компонентов, но родительский компонент не

Существует одно действие, которое приводит к рендерингу дочернего компонента, в то время как его родительский элемент не имеет. Я не понимаю, как это возможно.

Я уверен, что мой редуктор не мутирует состояние. Следствием этого действия и несогласованности между репертуаром является то, что опорная функция в дочернем компоненте не определена (поскольку она была успешно удалена из состояния). Но эта функция рендеринга не будет выполняться, если функция рендеринга родителя будет повторно запущена, как я ожидаю.

Почему не вызывается функция рендеринга родительского компонента при изменении состояния?

+0

Пожалуйста, разместите соответствующий код от вашего родительского компонента, дочернего компонента, редуктора и создателя действия, упомянутого в вопросе. –

+0

@ free-soul вставить все это в вопрос? Я думал, что связь здесь предпочтительнее загромождения здесь. –

ответ

1

Похоже, что это связано с детализацией реализации в реакции-redux v4, где компоненты детей обновляются перед родительскими компонентами. Это изменяется в react-redux v5, который вы можете проверить, установив npm install [email protected].

+0

Ничего себе, достаточно просто. Я не видел никаких проблем или документации, указывающих на это. Я просто предположил, что рендеринг является однонаправленным так же, как состояние и параметры передаются. Большое спасибо. –

+1

Следующая бета-версия реагирования-редукция сделает это изменение в поведении для версии 5.0 из-за некоторых причин совместимости с React 15, поэтому вам придется включить его, чтобы получить «правильное» поведение. Этот план должен сделать это по умолчанию, когда React 16 приземляется. Следите за примечаниями к выпуску реакции-снижения. –

Смежные вопросы