gpt4 book ai didi

reactjs - 用动态键 react setState

转载 作者:行者123 更新时间:2023-12-03 13:19:58 24 4
gpt4 key购买 nike

我有以下代码片段:

onChange(e) {
e.persist
this.setState((prevState) => {
prevState[e.target.id] = e.target.value
return prevState
})
}

我如何使用上面的代码设置每个键的状态。

这是初始状态:

 this.state = {
heading: this.props.match.params.length > 1 ? "Edit Post" : "Create Post",
title: '',
category: '',
body: '',
author: ''
}

最佳答案

基本规则是:

我们可以使用Computed property names概念并使用任何 js 表达式 动态计算对象属性名称。为此,我们需要将表达式放在 [] 内。

像这样:

var obj = {
[10 * 20 + 1 - 5]: "Hello"
};

console.log('obj = ', obj);

解决方案:

根据您发布的代码,您需要将 e.target.id 放入 [] 内,如下所示:

onChange(e) {
this.setState({
[e.target.id]: e.target.value
})
}

或者我们可以先创建该对象,然后将该对象传递给 setState 函数,如下所示:

onChange(e) {
let obj = {};
obj[e.target.id] = e.target.value
this.setState(obj);
}

此外,您也不需要 prevState。您可以直接用新值更新状态变量。仅当新状态值依赖于先前状态值时(例如计数器的情况),才需要prevState

关于reactjs - 用动态键 react setState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46771248/

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