【发布时间】:2021-07-18 09:06:55
【问题描述】:
嘿,伙计们,我遇到了以下挫折,我正在尝试在已经填充了另一个值的对象的空值上写入,以便以后可以使用它们,我已经定义了对象,我正在尝试用新的值重新分配值在我从 API 调用收到它们之后,问题是我收到的对象与来自 API 调用的对象相同,我不需要那个,我需要我创建的相同结构,因为发生这种情况我正在使用 useState。你能指出我正确的方向吗? 那是我的代码,之后我总是得到结果
API调用前deliveryAddressInput的初始状态
const [deliveryAddressInput, setDeliveryAddressInput] = useState<NewAddressDetails>({});
API调用后的结果是setDeliveryAddressInput(adress):
BuildingName: "18A"
BuildingNumber: ""
City: "Houghton Le Spring"
Line1: "18A Nesham Place"
Line2: ""
Line3: ""
PostalCode: "DH5 8AG"
从顶部开始映射对象的初始状态:
const [newAddress, setNewAddress] = useState<{}>({
firstName: firstNameInput,
lastName: lastNameInput,
houseNo: deliveryAddressInput.BuildingNumber,
houseName: deliveryAddressInput.BuildingName,
street: deliveryAddressInput.Line1,
addressLine2: deliveryAddressInput.Line2,
town: deliveryAddressInput.City,
postCode: deliveryAddressInput.PostalCode,
});
useState 函数:
useEffect(() => {
setTimeout(() => {
setNewAddress(deliveryAddressInput);
});
}, [deliveryAddressInput]);
并且最终的结果和API调用的结果一样:
BuildingName: "18A"
BuildingNumber: ""
City: "Houghton Le Spring"
Line1: "18A Nesham Place"
Line2: ""
Line3: ""
PostalCode: "DH5 8AG"
我正在尝试接收将 API 调用的值映射到新对象键的以下内容:
firstName: "Jane",
lastName: "Smith",
houseNo: "",
houseName: "18A",
street: 18A Nesham Place,
addressLine2: "",
town: "Houghton Le Spring",
postCode: "DH5 8AG",
【问题讨论】:
-
将 API 调用的结果打印到控制台。你看到了什么?
-
如您所见,在调用 API 之后有一个示例
-
好的,我明白了。你从哪里得到名字/姓氏等等?
-
只有这两个属性来自另一个输入,并且具有相应的 useState
标签: javascript reactjs typescript react-typescript