Reactjs 导航-替换场景视图中的NavigationHeader标题
我正在尝试从特定场景的视图更新NavigationHeader标题(以及左组件和右组件) 例如:Reactjs 导航-替换场景视图中的NavigationHeader标题,reactjs,react-native,Reactjs,React Native,我正在尝试从特定场景的视图更新NavigationHeader标题(以及左组件和右组件) 例如: 用户导航到纵断面图 从服务器获取数据 调用redux操作以使用用户名更新导航标题 我目前的方法效果不太好。我正在尝试使用NavigationStateUtils将场景替换为其自身的更新版本。如果我的视图是堆栈中的第一个视图,则此操作有效。但是,如果我尝试在非第一条路线上添加更新导航标头的调用,它将冻结,因为导航尚未完成动画 我可以尝试在通话中添加一个超时,但提出一个在全球范围内有意义的延迟似乎有点不
case UPDATE_NAV_HEADER: {
const tabs = state.get('tabs')
const tabKey = tabs.getIn(['routes', tabs.get('index')]).get('key')
const scenes = state.get(tabKey).toJS()
const route = scenes.routes.slice(-1)[0]
var leftComponent = null
if (action.payload.leftComponent) {
leftComponent = action.payload.leftComponent
} else if (route.navLeftComponent) {
leftComponent = route.navLeftComponent
}
var rightComponent = null
if (action.payload.rightComponent) {
rightComponent = action.payload.rightComponent
} else if (route.navRightComponent) {
rightComponent = route.navRightComponent
}
const newScene = NavigationStateUtils.replaceAt(
scenes,
route.key,
{
key: route.key,
title: action.payload.newTitle ? action.payload.newTitle : route.title,
navLeftComponent: leftComponent,
navRightComponent: rightComponent,
shouldRenderHeader: "shouldRenderHeader" in route ? route.shouldRenderHeader : true,
shouldRenderTabBar: "shouldRenderTabBar" in route ? route.shouldRenderTabBar : true
}
)
return state.set(tabKey, fromJS(newScene))
}