【问题标题】:Delete state objects in react删除反应中的状态对象
【发布时间】:2019-10-27 16:38:12
【问题描述】:

我想将状态值的一些详细信息保存到 Firestore。我怎样才能做到这一点?

state = {
    sp_Name: '',
    sp_Phone: '',
    sp_email: '',
    sp_Role: 'Fleet Provider',
    usr_org_LicenseNumber: '',
    sp_License:'',
    usr_org_StateConvered: '',
    usr_org_DistConvered: '',
    EquipmentCount: 0,
    loading:false,
    checked: false,
    disChecked : false,
    open: false,
    message:'',
    sp_NameError: '',
    sp_PhoneError: '',
    sp_emailError: '',
    usr_org_LicenseNumberError: '',
    sp_LicenseError:'',
    usr_org_StateConveredError: '',
    usr_org_DistConveredError: '',
    sp_NumberofEquipmentsError:'',
};

我正在删除一些细节,但有没有其他方法可以一次性删除。

const stateObj = this.state;
delete stateObj['loading'];
delete stateObj['checked'];
delete stateObj['disChecked'];
delete stateObj['open'];
delete stateObj['message'];
delete stateObj['sp_NameError','sp_PhoneError','sp_emailError'];
delete stateObj['usr_org_LicenseNumberError', 'sp_LicenseError','usr_org_StateConveredError',
'usr_org_DistConveredError','sp_NumberofEquipmentsError'];
this.props.UpdateUserDetails(uid, stateObj)
this.openSnackbar({ message: 'Submitted Successfully.!' });

【问题讨论】:

标签: reactjs google-cloud-firestore


【解决方案1】:

试试这个。

keysToBeRemoved = ["loading", "checked", "disChecked", "open", "message"];
this.setState(prevState => ({
  ...Object.keys(prevState).filter(item => !keysToBeRemoved.includes(item)
    ).map(field => ({
      [field]: prevState[field]}
    ))
}))

【讨论】:

    【解决方案2】:

    您可以使用Object.entriesarray.reduce 的组合,这样会更简洁:

    您只需要一个包含不再需要的键的数组:

    let keysToRemove = ["loading", "checked", "disChecked", "open", "message", "sp_NameError", "sp_PhoneError", "sp_emailError", 'usr_org_LicenseNumberError', 'sp_LicenseError','usr_org_StateConveredError','usr_org_DistConveredError','sp_NumberofEquipmentsError']
    

    和一个新的状态

    let newState = Object.entries({...state}).reduce((obj, [key, value]) => {
        if(!keysToRemove.includes(key)){
            obj[key] = value
        }
        return obj
    }, {})
    
    this.props.UpdateUserDetails(uid, newState)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多