状态值不变

the state value not changing

我正在尝试使用 mobx 作为我的状态管理器来始终如一地更改我的值状态的值。我在 Change 方法上使用条件语句在 "Y" 时呈现 "X",在 "X" 时呈现 "Y",但是 onPRess= 它只呈现 "Y" 而不是'再次单击时将恢复为 "X"。这就像该方法只发生一次。有谁能帮忙吗

相关代码如下:

主要导入:

import React from 'react';
import { StyleSheet, Image, Text, View, PermissionsAndroid, Platform, TouchableOpacity, PixelRatio, Modal, Button} from 'react-native';
import {widthPercentageToDP as wp, heightPercentageToDP as hp} from 'react-native-responsive-screen'
import MenuIcon from '../Navigation/MenuIcon'
import { createBottomTabNavigator, createAppContainer, createStackNavigator} from 'react-navigation'
import {observable} from 'mobx';
import {observer} from 'mobx-react';
import StateStorage from "../StateStorage"

导入 StateStorage (mobx):

import {observable, action} from 'mobx';

class StateStorage {
  @observable value="Y";

  @action Change() {
    this.value="Y" ? "X" : "Y";


    }

}
export default new StateStorage();

呈现的内容:

@observer
class Home extends React.Component{
render(){
return(
    <View style={styles.container1}>


         <TouchableOpacity onPress= {() => StateStorage.Change()}>
    <Text style={{color:'white'}} >{StateStorage.value}</Text>
                      </TouchableOpacity>

                      <Text style={styles.welcome}>hfhdfjedhfeehfjeh</Text>


                      </View>
)

}
}

您在使用 ? 运算符时犯了错误。

this.value="Y" ? "X" : "Y"; 这将始终将值设置为 "X" 因为 "Y" 是 true 而不是 false.

import {observable, action} from 'mobx';

class StateStorage {
  @observable value="Y";

  @action Change() {
    this.value= this.value === "Y" ? "X" : "Y";
  }
}
export default new StateStorage();