簡體   English   中英

在React中設置狀態

[英]set state in React

我的react組件上有以下狀態變量:

this.state = {
  application: {
    institutions: [{
     "name":null
    }]
  }
}

我想設置變量名稱的狀態,而我所做的是:

handleChangeInstitution(event,indexInstitution){

    const institutions = [...this.state.application.institutions]

    institutions[indexInstitution] = {
        ...institutions[indexInstitution],
        [event.target.name]: event.target.value
    }

    this.setState(prevState => ({
        ...prevState,
        application: {
            ...prevState.application,
            institutions: [
                ...institutions,
            ]
        }
    }))

}

這工作得很好,但是當我在輸入框中鍵入內容時,它確實很慢。 有什么方法可以優化它嗎?

這是一個更清潔的解決方案。 另外,這是更新數組項的非常常見的模式。 關於性能,這部分代碼無能為力。 它不應該關於這部分。

handleChangeInstitution(event,indexInstitution){
    this.setState(prevState => ({
        ...prevState,
        application: {
            ...prevState.application,
            institutions: [
                ...institutions.slice(0, indexInstitution),
                {
                  ...institutions[indexInstitution],
                  [event.target.name]: event.target.value
                },
                ...institutions.slice(indexInstitution + 1),
            ]
        }
    }))

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM