параметры навигации внутри оператора if загружаются очень медленно (за полсекунды до отображения) - PullRequest
0 голосов
/ 21 сентября 2019

Я был занят опциями навигации, которые работали хорошо, пока мне не пришлось поместить заголовок в оператор if (state.params != undefined){, а цвет фона и все в нем загружалось примерно через полсекунды.Заголовок сначала становится белым, а затем цвет, который я установил, - синий.Вот код, который я использую, чтобы исправить это, но мне было интересно, если есть лучшее решение.Я использую рендер 2 раза:

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

    if (state.params != undefined) {
      return {
        title: "Welcome " + state.params.usernameValue,
        headerLeft: <View />,
        headerStyle: {
          backgroundColor: "#8ccff5"
        },
      };
    }

Мое решение - поставить 2 return{}, что мне не нравится .

    return {
      headerStyle: {
        backgroundColor: "#8ccff5"
      },
    };
  };

Таким образом, это исправленоно мне было интересно, если у кого-то есть лучшее / более чистое решение.Спасибо за ваше время

1 Ответ

0 голосов
/ 21 сентября 2019

Вы можете сделать свой код менее повторяющимся с помощью одного оператора return, используя это:

static navigationOptions = ({ navigation }) => {
  const { state } = navigation;
  const styles = {
    headerStyle: {
      backgroundColor: "#8ccff5"
    }
  };

  if (state.params != undefined) {
    styles.title = "Welcome " + state.params.usernameValue;
    styles.headerLeft = <View />;
  }

  return styles;
}
...