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

react中form.setFieldvalue數據回填時 value和text不對應的問題及解決方法

 更新時間:2023年07月18日 14:39:05   作者:劉小蟲_  
這篇文章主要介紹了react中form.setFieldvalue數據回填時 value和text不對應的問題及解決方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

react中form.setFieldvalue數據回填時 value和text不對應的問題

react中進入表單的編輯頁面時 需要將之前新建的數據回填,如果是{}的形式 需要一一對應,如果是[]的形式 需要單獨的值意思是不接受數組對象也就是[{},{},{}]的形式解決方法:借用對象,用key去找value

// 進入編輯頁面 多選框的回填(轉換為對象的形式,用key來找value)
let reversedynamicDataObj = {};
let result = [];
Data.relatedProjects.map((i) => {
         JSON.stringify(i.id)
         .split(',')
         .map((ele) => {
     			reversedynamicDataObj[ele] = {
                      value: { name: i.name, id: ele },
                      key: ele,
                 };
        		result.push(reversedynamicDataObj[ele]['key']);
           });
});
Data.relatedProjectIds = result;
form.setFieldsValue(Data);

在react中對自己的組件使用setFieldsValue

setFieldsValue的用法

setFieldsValue是antd form的一個api,其作用是對指定的已使用from包裹的表單進行value設置。那么所以它的功能也很簡單,那就是給指定的input設置value。如下所示:

import React from "react";
import { Form, Input } from 'antd';
class TestForm extends React.Component {
  componentDidMount(){
    const { setFieldsValue } = this.props.form;
    // 這里就能實現指定表單設置value
	setTimeout(()=>{
		setFieldsValue({"username": "Tom"})
	},5000)
  }
  render() {
    const { getFieldDecorator } = this.props.form;
    return (
      <Form >
        <Form.Item>
          {getFieldDecorator('username', {})(<Input />)}
        </Form.Item>
      </Form>
    );
  }
}
export default Form.create()(TestForm)

問題

那么假如把

{getFieldDecorator('username', {})(<Input />)}

換成

{getFieldDecorator('username', {})(<TestInput />)}

setFieldsValue 設置的value去哪了?相信聰明的你一眼就看透了,自然是在TestInput上面。假如TestInput是我們自定義的組件,那么我們則可以在props中找value這個屬性,那么假如我們的Input是自定義的input組件,我們可以這么寫

import React from "react";
import { Input } from 'antd';
class TestInput extends React.Component {
	state = {
		value: ""
	}
	componentWillReceiveProps(nextProps){
		if(nextProps.value){
			this.setState({
				value: nextProps.value
			})
		}
	}
	render() {
	    return (
	      <div >
	          <Input value={this.state.value}/>
	      </div>
	    );
  	}
}
export default TestInput

這樣,我們就能使用setFieldsValue設置自定義的組件了。

到此這篇關于react中form.setFieldvalue數據回填時 value和text不對應的問題的文章就介紹到這了,更多相關react中form.setFieldvalue數據回填內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • React高級指引之Refs and the DOM使用時機詳解

    React高級指引之Refs and the DOM使用時機詳解

    在典型的React數據流中,props是父組件與子組件交互的唯一方式。要修改一個子組件,你需要使用新的props來重新渲染它。但是,在某些情況下,你需要在典型數據流之外強制修改子組件
    2023-02-02
  • 在react中對less實現scoped配置方式

    在react中對less實現scoped配置方式

    這篇文章主要介紹了在react中對less實現scoped配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • react中通過props實現父子組件間通信的使用示例

    react中通過props實現父子組件間通信的使用示例

    在React中,父組件可以通過props屬性向子組件傳遞數據,子組件可以通過props屬性接收父組件傳遞過來的數據,本文就來介紹一下如何實現,感興趣的可以了解一下
    2023-10-10
  • React Ant Design樹形表格的復雜增刪改操作

    React Ant Design樹形表格的復雜增刪改操作

    這篇文章主要介紹了React Ant Design樹形表格的復雜增刪改操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • React封裝自定義Hook捕獲所有錯誤的實現方法

    React封裝自定義Hook捕獲所有錯誤的實現方法

    在 React 開發(fā)中,錯誤處理是確保應用穩(wěn)定性和用戶體驗的重要部分,React 提供了多種錯誤捕獲方式,包括錯誤邊界**等,本文將詳細介紹這些方法,并展示如何封裝一個能夠捕獲所有同步和異步錯誤的自定義 Hook,需要的朋友可以參考下
    2024-12-12
  • 淺談React碰到v-if

    淺談React碰到v-if

    這篇文章主要介紹了淺談React碰到v-if,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • React中的useMemo 和 useEffect 執(zhí)行順序

    React中的useMemo 和 useEffect 執(zhí)行順序

    在 React 組件的渲染過程中,useMemo 和 useEffect 的執(zhí)行順序是不同的,本文給大家介紹React中的useMemo 和 useEffect 哪個先執(zhí)行,感興趣的朋友一起看看吧
    2025-01-01
  • React useCallback詳細使用教程

    React useCallback詳細使用教程

    useCallback是react中比較重要的一個hook,useCallback 用來返回一個函數,在父子組件傳參或者通用函數封裝中,起到舉足輕重的作用
    2022-11-11
  • React實現倒計時功能組件

    React實現倒計時功能組件

    這篇文章主要為大家詳細介紹了如何通過React實現一個倒計時功能組件,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解下
    2023-09-09
  • React使用api的方式封裝彈窗的示例代碼

    React使用api的方式封裝彈窗的示例代碼

    在現代開發(fā)中的彈窗樣式,經常會是底部一個叉號樣式的彈窗,但是目前組件庫中并無類似彈窗組件,本文小編給大家介紹了React使用api的方式封裝彈窗的示例,感興趣的小伙伴跟著小編一起來看看吧
    2024-09-09

最新評論