React Native-对象内部状态的setState [英] React Native - setState on object inside state

查看:345
本文介绍了React Native-对象内部状态的setState的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在模式屏幕上有两个文本输入,当我填充第一个输入时-状态已更新,而当我跳入第二个输入并开始键入时-第一个输入的值为空.

I have two text inputs on modal screen, when I'm filling first input - state is updated, and when I jump on second input and start typing - value of the first input is empty.

这是代码:

constructor(){
    super()
    this.state={
    Modal: {
        EduModalVisible: false,
        ProTitleModalVisible: false,
        PsychoModalityModalVisible: false,
    },

    User: { 
        NameOfFaculty: '',
        YearOfGraduate: '',
    }
}

}

文本输入如下:

<TextField label={'Faculty'} highlightColor={'#76a6ef'}
        value={this.state.User.NameOfFaculty} onChangeText={(faculty) => this.setState({User: { NameOfFaculty: faculty }})} />
<TextField label={'Year Of Graduation'} highlightColor={'#76a6ef'}
        value={this.state.User.YearOfGraduate} onChangeText={(year) => this.setState({User: { YearOfGraduate: year }})} />

我认为问题在于状态内部对象的更新,但是我不确定该如何解决.

I think that problem is in updating state of object inside state, but I'm not sure how to solve this.

推荐答案

下面是一个示例: https://snack. expo.io/rkeQ7cxWb

您需要为现有对象分配属性,以保留其内容:

You need to assign the property for the existing object in order to preserve it contents:

onChangeText={(faculty) => {
  const User = Object.assign({}, this.state.User, { NameOfFaculty: faculty });
  this.setState({ User });
}}

这篇关于React Native-对象内部状态的setState的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆