From 7a058892e06f214eea60e274a6740375d06740d8 Mon Sep 17 00:00:00 2001 From: Brent Vatne Date: Fri, 8 Jun 2018 17:35:17 -0700 Subject: [PATCH] Update header when screenProps change (Fixes #4271) --- packages/react-navigation/src/views/ScenesReducer.js | 11 +++++++++++ .../react-navigation/src/views/StackView/StackView.js | 1 + packages/react-navigation/src/views/Transitioner.js | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/packages/react-navigation/src/views/ScenesReducer.js b/packages/react-navigation/src/views/ScenesReducer.js index fe4db773..2ef07a06 100644 --- a/packages/react-navigation/src/views/ScenesReducer.js +++ b/packages/react-navigation/src/views/ScenesReducer.js @@ -65,6 +65,17 @@ export default function ScenesReducer( prevState, descriptors ) { + // Always update the descriptors + // This is a workaround for https://github.com/react-navigation/react-navigation/issues/4271 + // It will be resolved in a better way when we re-write Transitioner + scenes.forEach(scene => { + const { route } = scene; + if (descriptors[route.key]) { + scene.descriptor = descriptors[route.key]; + } + }); + + // Bail out early if we didn't update the state if (prevState === nextState) { return scenes; } diff --git a/packages/react-navigation/src/views/StackView/StackView.js b/packages/react-navigation/src/views/StackView/StackView.js index fcdc5dff..a3a5c56a 100644 --- a/packages/react-navigation/src/views/StackView/StackView.js +++ b/packages/react-navigation/src/views/StackView/StackView.js @@ -22,6 +22,7 @@ class StackView extends React.Component {