1

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

这是代码:

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

我认为问题在于更新状态内对象的状态,但我不知道如何解决这个问题。

4

1 回答 1

5

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

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

onChangeText={(faculty) => {
  const User = Object.assign({}, this.state.User, { NameOfFaculty: faculty });
  this.setState({ User });
}}
于 2017-05-22T16:35:30.487 回答