Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 更新用户界面上更改的值_Reactjs_React Native - Fatal编程技术网

Reactjs 更新用户界面上更改的值

Reactjs 更新用户界面上更改的值,reactjs,react-native,Reactjs,React Native,当按下按钮时,我想在屏幕上更改我的值。它会在幕后更改变量值,但对屏幕上显示的过时值没有影响 export default class App extends Component { render() { this.state = { myVariable: 'egs' } const changeValue = () => { this.state.myVariable = "CHANGED??!!" } return ( <View style={styles.cont

当按下按钮时,我想在屏幕上更改我的值。它会在幕后更改变量值,但对屏幕上显示的过时值没有影响

export default class App extends Component {
render() {
this.state = {
  myVariable: 'egs'
}
const changeValue = () => {
  this.state.myVariable = "CHANGED??!!"
}
return (
  <View style={styles.container}>
    <Text>
      {this.state.myVariable}
    </Text>
    <Button onPress={changeValue} title="CHANGE IT"/>
  </View>
);
}
}
导出默认类应用程序扩展组件{
render(){
此.state={
myVariable:'egs'
}
常量更改值=()=>{
this.state.myVariable=“已更改???”
}
返回(
{this.state.myVariable}
);
}
}
我希望将值更新为已更改的值,而不是过时的值

this.state.myVariable = "CHANGED??!!"
改为

this.setState({ myVariable: "CHANGED??!!" })
改为

this.setState({ myVariable: "CHANGED??!!" })

将状态初始化移到render和changeValue方法之外

您也不能直接变异雕像,而是使用setState()

这应该起作用:

export default class App extends Component {
    state = {
        myVariable: 'egs'
    }
    changeValue = () => {
        this.setState({myVariable:"CHANGED??!!"})
    }
    render() {
        return (
            <View style={styles.container}>
                <Text>
                    {this.state.myVariable}
                </Text>
                <Button onPress={changeValue} title="CHANGE IT"/>
            </View>
        );
    }
}
导出默认类应用程序扩展组件{
状态={
myVariable:'egs'
}
changeValue=()=>{
this.setState({myVariable:“CHANGED???!!“})
}
render(){
返回(
{this.state.myVariable}
);
}
}

将状态初始化移到渲染以及changeValue方法之外

您也不能直接变异雕像,而是使用setState()

这应该起作用:

export default class App extends Component {
    state = {
        myVariable: 'egs'
    }
    changeValue = () => {
        this.setState({myVariable:"CHANGED??!!"})
    }
    render() {
        return (
            <View style={styles.container}>
                <Text>
                    {this.state.myVariable}
                </Text>
                <Button onPress={changeValue} title="CHANGE IT"/>
            </View>
        );
    }
}
导出默认类应用程序扩展组件{
状态={
myVariable:'egs'
}
changeValue=()=>{
this.setState({myVariable:“CHANGED???!!“})
}
render(){
返回(
{this.state.myVariable}
);
}
}

刚刚尝试过,但仍然没有更改显示屏上的值。它也不会改变变量的值。只是尝试了一下,仍然不会改变显示器上的值。而且它不会改变变量的值。你是一个救生员。。。。我为此挣扎了几天。工作很有魅力,谢谢@HumanCode是的,状态初始化通常在上述组件或构造函数中完成。原因是当组件被实例化时,构造函数只被调用一次,而呈现函数在状态发生变化时被调用。另外,仅供参考,如果您在第一次呈现之前初始化了多个状态,请使用构造函数。在第一次呈现之后需要初始化的任何内容都应该在ComponentDidMount中完成。您是一个生命体储户我为此挣扎了几天。工作很有魅力,谢谢@HumanCode是的,状态初始化通常在上述组件或构造函数中完成。原因是当组件被实例化时,构造函数只被调用一次,而呈现函数在状态发生变化时被调用。另外,如果您在第一次呈现之前初始化的状态超过一个,请使用构造函数。在第一次呈现之后需要初始化的任何操作都应该在componentdidmount中完成