react項目中我們經常會涉及到修改state中參數的問題,如果參數為常用的基本類型變量,我們可以直接通過this.setState({...})方法來進行修改,但是如果變量為一個對象我們要如何修改呢?
我們要修改對象中的一個值或幾個值而保證其它參數不會受到影響,如state中含有pagintion對象,就是我們常用的分頁對象。對於這種情況我們首先想到的就是先將對象整體保存下來,然后將對象中的值修改為我們想要的值,然后再使用this.setState方法來整體賦值。於是我們就有了下面兩種方法:
1、使用es6的解構賦值方法const pagination = {...this.state.pagination }獲取到對象中的所有值,然后再pagination.page = 10(如修改page的值為10)來修改為成我們想要的值,最后再使用this.setState({pagination:pagination})來進行整體賦值就好了。
2、還有一種更為簡潔的賦值方式就是使用Object.assign方法,直接使用 const pagination = Object.assign({}, this.state.pagination, { page: 10 })一步到位,然后再調用this.setState({pagination:pagination}),就ok了。