React Native - 在状态内的对象上设置状态

Posted

技术标签:

【中文标题】React Native - 在状态内的对象上设置状态【英文标题】:React Native - setState on object inside state 【发布时间】:2017-10-22 09:33:20 【问题描述】:

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

代码如下:

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 ) />

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

【问题讨论】:

【参考方案1】:

这是一个例子:https://snack.expo.io/rkeQ7cxWb

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

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

【讨论】:

以上是关于React Native - 在状态内的对象上设置状态的主要内容,如果未能解决你的问题,请参考以下文章

React Native - 如何解析 json 数据并将其设置在状态对象中

如何映射一组对象,删除一个并将我的状态设置为 react-native 中的新数组?

在 React Native 的 iPhone 设置上手动禁用后如何检测 PushNotificationIOS 状态?

React Native - 直接在父组件上设置子组件的状态

React Native - 状态改变但组件没有重新渲染

React Native IOS 状态栏背景