状态值不变
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();
我正在尝试使用 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();