gpt4 book ai didi

javascript - 在 JavaScript 中初始化对象中的空数组

转载 作者:行者123 更新时间:2023-11-28 16:58:10 24 4
gpt4 key购买 nike

假设我有

        var form = {
header: {
value: null,
isValid: false,
type: 'textinput',
rules: {
isRequired: true,
},
},
selectedImages: []
}

在某些时候,用户会将一些图像推送到此 form.selectedImages 我正在这样做:form.selectedImages.push(image) 但是因为我selectedImages 为空,推送在这里不起作用。那么,我如何初始化一个空数组顺便说一句,我已经尝试过 selectedImages: new Array() 但也没有工作。

我可以解决这个问题吗?

谢谢。

更新

在我初始化这个表单之后。我正在使用 setState({form: form}) 将此表单设置为状态。设置完成后, form.selectedImages: null, console.log(form) 说..

更新2这是完整的 react 代码:

 var form = {
header: {
value: null,
isValid: false,
type: 'textinput',
rules: {
isRequired: true,
},
},
description: {
value: null,
isValid: false,
type: 'textinput',
rules: {
isRequired: true,
},
},
provinence: {
value: null,
isValid: false,
type: 'dropdowninput',
rules: {
isRequired: true,
},
},
district: {
value: null,
isValid: false,
type: 'dropdowninput',
rules: {
isRequired: true,
},
},
quarter: {
value: null,
isValid: false,
type: 'dropdowninput',
rules: {
isRequired: true,
},
},
address: {
value: null,
isValid: false,
type: 'textinput',
rules: {
isRequired: true,
},
},
where: {
value: null,
isValid: false,
type: 'dropdowninput',
rules: {
isRequired: true,
},
},
to: {
value: null,
isValid: false,
type: 'dropdowninput',
rules: {
isRequired: true,
},
},
deliverTo: {
value: null,
isValid: false,
type: 'dropdowninput',
rules: {
isRequired: true,
},
},
selectedImages: [],
whatsappContact: false,
emailContact: false,
isFree: false
}

这就是我在开关盒中使用此表单的方式。我有 n 个类别,它们都有不同类型的输入信息。因此创建了一个名为 initializeFormState() 的函数,基本上我从状态获取相关类别信息,并根据所选类别创建我不需要的可为空对象。最后,我将此表单输入设置为状态,以便验证并将它们推送到服务器。

这是我的案例之一:

            case 0: //emlak
form.where = null;
form.to = null;
form.address = null;
deliverTo = null;
this.setState({ ...form, selectedImages: [] }, () =>{console.log(form)});

最佳答案

在 JavaScript 中,您可以通过传递空记录(例如 {}[])来直接初始化 objectarray >.

您的代码是正确的,您现在不需要执行任何操作。只需尝试将图像推送到 selectedImages 中即可。

form.selectedImages.push(image)

它会起作用。

更新
为了使其正常工作,您必须通过以下命令设置状态。

if(!Array.isArray(form.selectedImages)) form.selectedImages = [];
this.setState({form: form});

关于javascript - 在 JavaScript 中初始化对象中的空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58501022/

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