欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

antd-react使用Select組件defaultValue踩的坑及解決

 更新時間:2023年05月12日 08:42:24   作者:半糖氣泡。  
這篇文章主要介紹了antd-react使用Select組件defaultValue踩的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

需求背景

有一個表格,點(diǎn)擊表格每一行的一個叫"查看數(shù)據(jù)記錄"的按鈕,打開一個抽屜,會調(diào)后端一個接口(這里我們叫它接口A),其中一個參數(shù)是抽屜里下拉框選中的當(dāng)前id(就是下文中的pid)

問題描述

表格每一行紅框圈出來的這個按鈕(圖1),點(diǎn)擊后會彈出一個抽屜(圖2),抽屜里面有一個下拉框, 需求要求每次打開都默認(rèn)選中"主版本",  遇到的問題是: 打開表格第二行的抽屜,此時改變下拉框使其選中"分支一",  然后再去打開表格第三行的抽屜,下拉框選中的id是"主版本"的id,但是顯示的依然是    "分支一"的名字!

圖(1)

圖(2)

--------------------------------分割線--------------------------------

原因分析

前提

這里組件都是類組件寫的,抽屜中的select組件綁定的defaultValue叫pid(下面就直接說pid了),抽屜組件里用了componentWillReceiveProps和componentDidMount兩個生命周期,接口A在這兩個生命周期都有調(diào)用, 我在這兩個鉤子里發(fā)現(xiàn)我每次拿到的pid都是對的,但是切換某一個抽屜的下拉框,再打開別的抽屜,下拉框顯示的名字永遠(yuǎn)是上次下拉框選擇的名字(但pid是對的)

當(dāng)時想到的原因如下

1) :  一開始覺得是抽屜關(guān)閉的時候我沒有重新更新defaultValue綁定的值,于是關(guān)閉抽屜的時候手動更新了一下,但是并沒有如愿解決我的問題

2): 由于此時我的pid是聲明在state里的數(shù)據(jù),我的pid在這兩個鉤子里都做了setState為"主版本"的id,更新pid的過程大概就是: 

  • 1.第一次打開表格第二行的抽屜時,  在componentDidMount 更新pid為"主版本"的id, 當(dāng)我切換下拉框?yàn)榉种б粫r, 就setState   pid為"分支一""的pid,
  • 2.基于第一條的操作, 此時當(dāng)我再打開表格第三行的抽屜時, 只會執(zhí)行componentWillReceiveProps, 在這個鉤子, 由于我也setState為"主版本"的id, 所以render里我拿到的pid不是"分支一"id,  而是我們想要的主版本的id,  render里拿到的id也確實(shí)是"主版本"的id, 但是顯示的還是"分支一"
  • 3.基于以上兩條的操作, 在網(wǎng)上找了一下答案, 看到使用componentWillReceiveProps,props改變時組件才會重新渲染,  state里的數(shù)據(jù)改變并不會使子組件刷新, (不過我對這個說法有點(diǎn)懷疑,因?yàn)閞ender里拿到的數(shù)據(jù)已經(jīng)是更新后的"主版本"的id了), 于是我把pid抽出來,寫在了抽屜的父組件里,由父組件傳過來, 再在這兩個鉤子里更新父組件里的pid

沒出意外,依然沒有解決問題!!!

3):  既然不行,那我就只能繼續(xù)找原因了,由于之前遇到過一個類似問題: 

  • 給一個表單設(shè)置了initValue,但是當(dāng)initValue綁定的值變化時,我的表單顯示的值并沒有更新,有人跟我說使用initValue的時候,數(shù)據(jù)更新不會更新頁面,讓我用setFieldsValue,由于之前用setFieldsValue也確實(shí)解決了表單值沒更新的問題,那我就不偷懶了,試試改成表單用setFieldsValue吧! 

結(jié)果又沒出意外,問題依然沒解決!!!

4):  實(shí)在找不到原因了,心態(tài)崩了呀!   不找了,就這樣放了一周,當(dāng)然期間沒有閑著,而是去寫別的任務(wù)改別的bug了,每天都想起來這個沒解決的bug,睡前都要想一下到底為什么呢?明明拿到了正確的id,為什么名字不對呢..............

解決方案

一周過去了,今天本來該提測 ,結(jié)果后端那里有bug,沒有提測,那我就再找找原因吧,在交給測試測之前盡量解決掉這個問題,結(jié)果一行代碼解決了困擾了我一周的問題!

就是加了這個key,就這樣解決了我的問題~~~~~~~~~~~~

tip:

總結(jié)

或許這個問題很簡單,但是解決這個問題的那一刻,真的很激動! 寫這個文章只是為了記錄一下這個讓我印象深刻的問題,同樣給踩到同樣坑的工友一個參考! 或許我很菜,但我在學(xué)了,如果有說的不夠詳細(xì)或者不對的地方,希望大佬們給我補(bǔ)充更正,先謝為敬! 

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 實(shí)例講解React 組件

    實(shí)例講解React 組件

    這篇文章主要介紹了React 組件的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • React實(shí)現(xiàn)卡片拖拽效果流程詳解

    React實(shí)現(xiàn)卡片拖拽效果流程詳解

    這篇文章主要介紹了React Web開發(fā)實(shí)戰(zhàn)示例,實(shí)現(xiàn)卡片拖拽效果,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-11-11
  • React?Hook中的useState函數(shù)的詳細(xì)解析

    React?Hook中的useState函數(shù)的詳細(xì)解析

    Hook 就是 JavaScript 函數(shù),這個函數(shù)可以幫助你鉤入(hook into) React State以及生命周期等特性,這篇文章主要介紹了React?Hook?useState函數(shù)的詳細(xì)解析的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • react-native封裝插件swiper的使用方法

    react-native封裝插件swiper的使用方法

    這篇文章主要介紹了react-native封裝插件swiper的使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • webpack手動配置React開發(fā)環(huán)境的步驟

    webpack手動配置React開發(fā)環(huán)境的步驟

    本篇文章主要介紹了webpack手動配置React開發(fā)環(huán)境的步驟,webpack手動配置一個獨(dú)立的React開發(fā)環(huán)境, 開發(fā)環(huán)境完成后, 支持自動構(gòu)建, 自動刷新, sass語法 等功能...感興趣的小伙伴們可以參考一下
    2018-07-07
  • React函數(shù)式組件的性能優(yōu)化思路詳解

    React函數(shù)式組件的性能優(yōu)化思路詳解

    這篇文章主要介紹了React函數(shù)式組件的性能優(yōu)化思路詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • React-Native 環(huán)境搭建和基本介紹

    React-Native 環(huán)境搭建和基本介紹

    這篇文章主要介紹了React-Native 環(huán)境搭建和基本介紹的相關(guān)資料,包括react native優(yōu)缺點(diǎn),通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-04-04
  • React類組件中super()和super(props)的區(qū)別詳解

    React類組件中super()和super(props)的區(qū)別詳解

    這篇文章給大家詳細(xì)介紹了React類組件中super()和super(props)有什么區(qū)別,文中通過代碼示例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • react?中?mobx的使用案例詳解

    react?中?mobx的使用案例詳解

    這篇文章主要介紹了react?中?mobx的使用案例詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • 面試官常問React的生命周期問題

    面試官常問React的生命周期問題

    在react面試中,面試官經(jīng)常會問我們一些關(guān)于react的生命周期問題,今天特此分享本文給大家詳細(xì)介紹下,感興趣的朋友跟隨小編一起看看吧
    2021-08-08

最新評論