Компонент не обновляет право - PullRequest
0 голосов
/ 05 сентября 2018

В моем приложении у меня в шапке вид 35x35, который окрашен в цвет статуса человека, который вошел в систему; который работает как шарм, кроме небольшого сбоя обновления

Поведение на данный момент:

Я нажимаю на вид (чтобы перейти к экрану SelectACDState) // отлично работает

Я выбираю свое новое состояние, нажимая его, и оно перемещает меня назад // отлично работает

Я вернулся к экрану, где я первоначально щелкнул статус-представление

Переменная изменяется прямо в globals.js, но в представлении все еще отображается старый цвет состояния (но если я перехожу на другой экран в tabNavigator, представление меняется на правильный цвет)

App.js:

{all imports}

export default createStackNavigator({

{...}

  Home: {
    navigationOptions: ({ navigation }) => ({
      title: null,
      headerRight: (
        <TouchableOpacity
          style={[
            styles.ACDstateButton,
            (style = { backgroundColor: global.BColor })
          ]}
          onPress={() => {
            navigation.navigate("SelectACDState");
          }}
        />
      )
    }),

{...}

  SelectACDState: {
    screen: SelectACDState,
    navigationOptions: { header: null }
  }
});

SelectACDState.js:

{all imports}


export default class SelectACDState extends Component {
  showACDState = (itemValue, Bcolor) => {
    this.setState({});
    global.BColor = Bcolor;
    global.ACDState = itemValue;
    this.setState({});
  };

  setACDState = (itemValue, itemIndex) => {
    AsyncStorage.setItem("ACDState", itemValue);
    this.setState({});
    global.ACDState = itemValue;
    this.showACDState(itemValue);
  };

  onPress = () => {
    this.props.onPressItem(this.props.id);
  };
  render() {
    const { goBack } = this.props.navigation;

    return (
      <View style={styles.padding2}>
        <FlatList
          data={[
            { key: `${MLT.t("Abgemeldet")}`, Bcolor: "#FFFFFF" },
            { key: `${MLT.t("Anwesend")}`, Bcolor: "#FFFFAE" },
            { key: `${MLT.t("ACD")}`, Bcolor: "#7BEC36" },
            { key: `${MLT.t("Nachb")}`, Bcolor: "#c8f4b5" },
            { key: `${MLT.t("Pause")}`, Bcolor: "#FAA46B" }
          ]}
          renderItem={({ item }) => (
            <View
              style={{
                backgroundColor: item.Bcolor,
                borderWidth: 1,
                height: 50,
                borderColor: "black"
              }}
            >
              <TouchableOpacity
                onPress={() => {
                  this.showACDState(item.key, item.Bcolor);
                  goBack();
                }}
              >
                <Text
                  style={[
                    styles.rowText,
                    (style = { fontSize: 30, alignSelf: "center" })
                  ]}
                >
                  {item.key}
                </Text>
              </TouchableOpacity>
            </View>
          )}
        />
      </View>
    );
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...