iT邦幫忙

0

ReactJS 使用 setState 更新 Object 沒有 re-render 疑問

  • 分享至 

  • xImage

想請問各位前輩
在ReactJS裡面用setState去更新Object
會視為物件有更改
還是會視為同一物件呢?

this.setState({
    all_cart: _response['data'],
})

例如:
all_cart = {cart_item_count: 2, cart_subtotal: '110.00'}
更新成
all_cart = {cart_item_count: 2, cart_subtotal: '100.00'}

因為預期使用 setState 去更新物件,並重新渲染,但似乎ReactJS不吃這一套,想請問大神該如何解決!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
pgitguy
iT邦新手 5 級 ‧ 2022-07-25 16:44:44

ReactJS 就是用setState去激發重新渲染的,不論是不是Object,只要有改變就會渲染。(反而有時候沒有改變也會渲染,這涉及到React檢查state和props的機制, 通常state 是nested object的時候)

你是不是用了異步請求?可能是那部分出了錯。有沒有完整code

稍早已經成功自己debug,結果是我忘記在children component定義props改變要做的事,謝謝您的解答

我要發表回答

立即登入回答