【发布时间】:2021-10-02 23:58:21
【问题描述】:
大家好,我目前是 TypeScript 的新手,我正在尝试创建一个仅包含对象的状态值。目前我有一个这样的对象数组:
[{ Ananas: "A", Banana: "B" , Citroen: "C"}]
,但最终目标是拥有这样的东西:
{ Ananas: "A", Banana: "B" , Citroen: "C"}
我是这样定义我的初始状态
const [selectValue, setSelectValue] = useState<Array<string>>([]);
现在我尝试这样的事情,但我认为这不是只拥有对象初始状态的正确方法
const [selectValue, setSelectValue] = useState({});
我的更新功能就是这么简单
const handleChange = (e: any) => {
setSelectValue((selectValue: any) => {
const newSelectValue = [...selectValue];
if (!newSelectValue[0]) newSelectValue[0] = {};
newSelectValue[0] = { ...newSelectValue[0], [e.target.value]: e.target.name };
return newSelectValue;
});
};
但正如我在上面所说的,我想更新状态值以仅包含对象而不是对象数组。所以我想知道我该怎么做。先谢谢了
【问题讨论】:
-
您能分享一下使用
handleChange的组件的鳕鱼吗? -
我认为您正在尝试将对象定义为状态并更新其属性的值,我说的是真的吗?
-
是的,这就是整个想法,但是当我正在做一个对象数组更新
<Select name={keys[i]} onChange={(e: any) => handleChange(e)}>这是我使用handleChange的组件 -
@PandaMastr 我回答了这个问题。请看答案,如果有问题,请说改进。
标签: arrays reactjs typescript