gpt4 book ai didi

javascript - 将状态项设置回初始状态而不改变

转载 作者:行者123 更新时间:2023-11-30 11:15:22 25 4
gpt4 key购买 nike

我在 React 中有一个表单,我正在更新一个表单。此表单已具有初始值,我想在输入为空 '' 时将状态中的表单项更新回其初始值。

当用户输入或更新字段时,我将不可变地更新状态对象:

handleInputChange = (name, {value}) => {

if(value === '') {
this.setInitialState(name);
}

let val = {...this.state, [name] : value}

this.setState(val);
}

setInitialState 函数可以采用正在更新的输入字段的名称。问题是我如何才能将状态中的一个项目设置回其初始值而不将整个状态对象更新回初始值,我正在尝试不可变地执行此操作。

这是那个函数:

 setInitialState = (val) => {
let active = this.props.member.active;
let age = this.props.member.age;
let firstname = this.props.member.firstname;
let lastname = this.props.member.lastname;
let gender = this.props.member.gender;
let id = this.props.member.id;
let patientId = this.props.member.patientId;



}

我已尝试执行以下操作:

  1. this.props.member.${val}<​​
  2. this.props.member.val

我已经寻找了其他问题和他们将整个状态对象更新回初始状态的地方,但这不是我想要做的。

如果您有地方可以了解如何执行此操作,我也愿意查看。

谢谢

最佳答案

这是使用字符串访问对象属性的方式:

this.props.member[val]

基于您所尝试的一般示例:

var obj = { foo: "bar" };
console.log(obj.foo); // "bar". This is dot notation.
console.log(obj["foo"]); // "bar". This is what you need here - bracket notation
console.log(obj."foo"); // Syntax error
console.log(obj.${"foo"}); // Syntax error

关于javascript - 将状态项设置回初始状态而不改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51830228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com