Как передать новые параметры на предыдущий экран в реагировать родной? - PullRequest
1 голос
/ 29 февраля 2020

У меня есть плоский список фильмов, когда пользователь щелкает по нему, он передает параметр на экран подробностей mov ie, а деталь mov ie отображается тогда, когда на экране отображается плоский список похожих фильмов, когда пользователь выбирает любой из них, в основном новые параметры должны быть переданы на экран подробностей mov ie, но нет, он просто работает, как будто я нажимаю кнопку возврата ....

onPress={() =>
              this.props.navigation.navigate('MovieDetails', {
                selectedItem: item,
              })
            }   // Passing params to movie details screen


console.log(this.props.navigation.getParam('selectedItem')) //receiving params in movie details screen

1 Ответ

0 голосов
/ 29 февраля 2020

Проверьте этот пример ниже. Надеюсь, это поможет вам.

import * as React from 'react';
import { Button, View, Text } from 'react-native';
import { createAppContainer } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';

class HomeScreen extends React.Component {
  render() {
    return (
      <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
        <Text style={{ fontSize: 20, marginBottom: 10 }}>Home Screen</Text>
        <Button
          title="Go to Details"
          onPress={() =>
            this.props.navigation.navigate('Details', {
              name: 'this params from homescreen',
            })
          }
        />
      </View>
    );
  }
}

class DetailsScreen extends React.Component {
  render() {
    console.log('screen', this.props.navigation.state);

    return (
      <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
        <Text style={{ fontSize: 20, marginBottom: 10 }}>
          {this.props.navigation.state.params.name}
        </Text>
        <Button
          title="Go back"
          onPress={() => this.props.navigation.goBack()}
        />
      </View>
    );
  }
}

const RootStack = createStackNavigator({
  Home: HomeScreen,
  Details: DetailsScreen,
});

export default createAppContainer(RootStack);


Не стесняйтесь сомнений.

...