Как использовать параметры в navigationOptions с React Navigation 5 - PullRequest
0 голосов
/ 17 февраля 2020

Извините за этот вопрос, я не понимаю ответы на другие вопросы, потому что они на самом деле не совпадают с тем, что я хочу. Я начинающий с этим.

Это мое приложение. js: (новый способ приложения. js)

const Stack = createStackNavigator()

export default function App() {
  return <NavigationContainer>
    <Stack.Navigator>
<Stack.Screen options={{title: 'Profile'},Profile.navigationOptions} name="Profile" component={Profile}/>
name="AccountOverview" component={AccountOverview}/>
    </Stack.Navigator>
  </NavigationContainer>
}

Это мой профиль. js navigationOptions

static navigationOptions = ({ navigation }) => {
    const { params = {} } = navigation.state;

    if (params.facebookName) {
      var usernameTitle = params.facebookName || "";
    } else {
      var usernameTitle = params.usernameValue || "";
    }
    return {
      title: "Welcome " + usernameTitle,

      headerRight: () =>
        <TouchableOpacity style={styles.btn} onPress={params.removeItemValue}>
          <Text style={styles.btnText}>Log out</Text>
        </TouchableOpacity>

    };
  };

Я получаю ошибку undefined is not an object (evaluating 'navigation.state.params')

Не могу понять документацию с веб-сайта React Navigation.

Так что я надеюсь, что получу ответ, нацеленный на мой точный код.

Я был бы очень признателен, и дал бы вам и принял ответ за ваше решение.

Спасибо за ваше время

1 Ответ

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

вы можете использовать параметры тремя способами:

  1. при определении экрана внутри стекового навигатора вы можете отправлять ему исходные параметры:
    <Stack.Screen ... initialParams={{ facebookName: "developer" }} />

  2. при переходе к экрану из других экранов в стеке:
    navigation.navigate("Profile", { facebookName: "developer" })

  3. вы также можете обновить параметр экрана изнутри него:
    navigation.setParams({ title: "new title" })

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...