2017-03-24 42 views
10

是否可以访问React Navigation标题标题中的整个Redux状态?React-Navigation:使用/更改标题标题和Redux状态

official docs说,对应导航状态是可访问:

static navigationOptions = { 
    title: ({ state }) => `Chat with ${state.params.user}` 
    }; 

但我想访问我的终极版状态的其他部分,标题是更新时的状态更新。今天有可能吗?

+2

什么反应,头盔连接到终极版? –

回答

1

这是可能的一个小的解决方法。我不会把这种解决方法要么我会称之为一个很大的特点:-)

你只需要在你的头使用新的部件是这样的:

static navigationOptions = { 
    header: (navigation) => { 
     return <HomeViewTitle />; 
    } 
} 

然后你就可以在连接我的情况HomeViewTitle与终极版状态:

import React, { Component } from 'react'; 

import { 
    View, 
    Text 
} from 'react-native'; 

import { connect } from 'react-redux'; 


class HomeViewTitle extends Component { 

    render() { 

     return (

      <View style={{height: 64, backgroundColor: '#000000', alignItems: 'center', justifyContent: 'center', paddingTop: 20}}> 
       <Text style={{color: '#FFFFFF', fontSize: 17, fontWeight: 'bold'}}>Home</Text> 
      </View> 

     ); 

    } 

} 

const mapStateToProps = (state) => { 
    return state; 
} 

export default connect(mapStateToProps)(HomeViewTitle); 

那么你有你的终极版状态作为HomeViewTitle道具,你可以设置标题动态

+0

所以有可能把图片,按钮等标题?这是如何渲染的? – amaurymartiny

+0

是的,基本上可以将所有内容放在标题中。它呈现与其他每个连接组件呈现的相同方式。在我的情况下,我在头文件中有一个图像,该图像在应用程序启动时不可用。一旦应用程序被加载,它会发出json请求并将图像加载到redux存储中。当图像在商店时,它更新HeaderViewTitle并且图像得到显示 – vanBrunneren

+0

然而,使用这种方法,您会失去所有自动平台样式功能,这些功能通过反应导航来实现。 :( – Noitidart