2017-03-24 1 views
10

React Navigation의 헤더 제목에서 전체 Redux 상태에 액세스 할 수 있습니까?React-Navigation : Redux 상태의 헤더 제목 사용/변경

official docs 탐색에 해당하는 상태에 액세스 할 수 있는지 말한다 :

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

하지만 제목 업데이트 그 상태 업데이트와 함께, 내 돌아 오는 상태의 다른 부분에 액세스하고 싶습니다. 오늘 가능한가?

+2

무엇에 대한 반응 헬멧 REDUX에 연결을? –

답변

1

약간의 해결 방법으로 가능합니다.

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

을 한 다음에 연결할 수 있습니다 : 난 그냥 같이 헤더에 새 구성 요소를 사용해야 하나 내가

:-)이 좋은 기능을 호출 할이 해결 방법을 호출 할 것이다 REDUX 상태 내 경우 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의 소품 같은 REDUX 상태를 가지고 동적 헤더를 설정할 수 있습니다

+0

헤더에 이미지, 버튼 등을 넣을 수 있습니까? 어떻게 그게 렌더링 되나요? – amaurymartiny

+0

네, 헤더에 기본적으로 모든 것을 넣을 수 있습니다. 다른 모든 redux 연결 구성 요소가 렌더링하는 것과 같은 방식으로 렌더링됩니다. 제 경우에는 헤더에 앱 시작시 사용할 수없는 이미지가 있습니다. 응용 프로그램이로드되면 json 요청을 만들어 이미지를 redux 저장소에로드합니다. 이미지가 저장소에 있으면 HeaderViewTitle을 업데이트하고 이미지가 표시됩니다. – vanBrunneren

+0

그러나이 방법을 사용하면 반응 탐색 기능을 사용하여 상자에 들어있는 모든 자동 플랫폼 스타일링 기능이 손실됩니다. : – Noitidart

관련 문제