Реагировать на собственный TabNavigator this.props.navigation.state.params не определен

Я делаю приложение для Android с использованием реагировать родной. Я пытаюсь передать параметры через TabNavigator, но this.props.navigation.state.params не определено. В настоящее время я использую:

"react-native": "0.51.0",
"react-navigation": "^1.0.0-beta.22"

Пример кода (пытался сохранить только соответствующий):

это мой index.js:

const RootNavigator = TabNavigator({
    Home: { screen: App },
    Design: { screen: ImageDesign }
}

это домашний экран:

export default class App extends React.Component {

  constructor(props) {
    super(props);

    this.state = { ... }
  }

  static navigationOptions = {
    tabBarVisible: false
  };

  render() {
    const { navigate } = this.props.navigation;

    return (
      <View style={styles.container}>
        <Button title="design image"
                onPress={ () => navigate('Design',{name: 'Jane'}) }/>
      </View>
    );
  }
}

это дизайн экрана:

export default class ImageDesign extends React.Component {

  constructor(props) {
    super(props);

    this.state = { ... }
  }

  static navigationOptions = {
    tabBarVisible: false
  };

  render() {
    const { params } = this.props.navigation.state;

    return (
      <View>
        <Text>{ params.name }</Text>
      </View>
    );
  }
}

но, к сожалению, params не определен, поэтому ошибка 'undefined не является объектом'

Я также попробовал:

<Button title="design image"
        onPress={ () => navigate('Design', {}, {type: "Navigate", routName:"ImageDesign", params: {name: 'Jane'}}) }/>

но я не уверен, что так работает

Заранее спасибо!

1 ответ

Просто попробуй this.props.name, Params/ реквизиты должны быть отправлены в качестве реквизита. Вам не нужно обращаться к такому состоянию навигации.

Другие вопросы по тегам