为reactjs中对象内部的数组设置状态

时间:2019-01-31 11:57:59

标签: javascript reactjs

我正在尝试在reactjs中更新状态的地方做setState。

this.state = {
    activePage: 0,
    visible: false,
    questionType: null,
    form: {
        title: '',
        description: '',
        pages: [{
            title: '',
            description: '',
            questions: []
        }]

    }
};

这是初始状态,在每个数据条目上,我希望所有这些问题都在页面中存在的问题数组下。 为了达到这个目的,我试图做些什么?

onSubmit = (data) => {
    console.log('data is ', data);
    let newForm = {
        ...this.state.form
    };
    // it shows that we can't do this as it is not iterable 
    newForm.pages.questions = [...newForm.pages.questions, ...data];


    this.setState({
        newForm
    });



}

1 个答案:

答案 0 :(得分:0)

这部分代码无法工作,因为pages是一个数组。您必须提供要修改的页面的索引。

newForm.pages.questions=[...newForm.pages.questions,...data];

应该像

newForm.pages[indexOfPage].questions=[...newForm.pages[indexOfPage].questions,...data];