Javascript 如何设置此嵌套对象的状态?

Javascript 如何设置此嵌套对象的状态?,javascript,reactjs,Javascript,Reactjs,嗨,当我在一封电子邮件输入中按下“发送”按钮时,我在设置状态时遇到问题 我正试着按照React医生的建议避免突变 我的州属性如下: state = { emailForm: { email: { elementType: 'email-invitation-input', elementConfig: { type: 'email', placeholder: 'Enter an email..',

嗨,当我在一封电子邮件输入中按下“发送”按钮时,我在设置状态时遇到问题

我正试着按照React医生的建议避免突变

我的州属性如下:

state = {
    emailForm: {
      email: {
        elementType: 'email-invitation-input',
        elementConfig: {
          type: 'email',
          placeholder: 'Enter an email..',
        },
        value: '',
        valid: true,
        required: true
      }
    },
    requestStatus : false,
    validationMessage : null,
    formIsValid: false,
  } 
因此,我尝试了三种方法,通过状态为我的电子邮件输入设置空值,但没有人起作用:(

第一次尝试: 我使用ES6 spread运算符更改它的值,但它不更改输入值:

 this.setState({
   email: {
           ...this.state.emailForm.email,
           value: '',
           },
 });

 this.setState({
   email: Object.assign({}, this.state.emailForm.email, {
     value: '',
   }),
 });
再次尝试使用
immutability helper

import update from 'immutability-helper';
let newData = { email: {
   ...this.state.emailForm.email,
   value: '',
 }, };

 this.setState({
   email: update(this.state.newData, {
     value: {$set: newData},
   })
 }); 
第二次尝试: 我使用了Ramda.js,但它都不起作用

setObjectByPath(fieldPath, value) {
  this.setState({
    emailForm: R.set(R.lensPath(fieldPath), value, this.state.emailForm)
  })
}

setObjectByPath(this.state.emailForm.email,'');
第三次尝试:

我使用了
react addons update

import update from 'react-addons-update';

this.setState({
  email: update(this.state.newData, {
    value: {$set: newData},
  })
 });
所有尝试都不执行任何操作,或者它会创建一个新的电子邮件输入,其下面的值为空


事先谢谢

很有魅力,但我对如何使用这些软件包来设置我的状态存有疑问,无论如何,谢谢兄弟!
this.setState(prevState => ({
  emailForm: {
    email: {
      ...prevState.emailForm.email,
      value: ''
    }
  }
}));