Доступ к компоненту внутри NavigationOptions - React Native - PullRequest
0 голосов
/ 16 мая 2019

Я пытался условно визуализировать HeaderLeft по значению состояния, я не могу получить доступ к значению состояния внутри NavigationOptions

 static navigationOptions = ({ navigation }) => ({



    headerLeft: (navigation.state.searchText)? <View style={{ flexDirection: 'row', justifyContent: 'center' }}>

        <TouchableOpacity onPress={() => {
           // navigation.navigate('home');
           alert('Coming soon ');
        }}>
            <Image style={{ marginLeft: 20,height:20,width:20,resizeMode:"contain" }} source={require('../assets/header_icons/three_logo.png')} />
        </TouchableOpacity>
    </View> : <View style={{ flexDirection: 'row', justifyContent: 'center' }}>

<TouchableOpacity onPress={() => {
   // navigation.navigate('home');
   alert('Coming soon');
}}>
    <Image style={{ marginLeft: 20,height:20,width:20,resizeMode:"contain" }} source={require('../assets/header_icons/icon_arrow_left.png')} />
</TouchableOpacity>
</View>

});

Мой компонент смонтировал

  componentDidMount(){
  this.setState({threebool:true});
  this.props.navigation.setParams({

    searchText: this.state.threebool,
  });
}

Мой конструктор

constructor(props) {
  super(props)
  this.state = {
    threebool:true,

  }
}

Пожалуйста, дайте мне знать, как решить эту проблему.

Ответы [ 2 ]

0 голосов
/ 16 мая 2019
this.props.navigation.setParams({
  handleSubmit: this.handleSubmit,
  state: this.state;
});
handleSubmit = () => {}

в опции навигации вы получите значения по

static navigationOptions = ({ navigation = this.props.navigation }) => {
const state = navigation.state.params.state;
const handleSubmit = navigation.state.params.handleSubmit;}
0 голосов
/ 16 мая 2019

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

updateNavAndState(bool){
    this.props.navigation.setParams({
        searchText: bool,
      });
    this.setState({threebool:bool})
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...