react中form.setFieldvalue數(shù)據(jù)回填時 value和text不對應(yīng)的問題及解決方法
react中form.setFieldvalue數(shù)據(jù)回填時 value和text不對應(yīng)的問題
react中進入表單的編輯頁面時 需要將之前新建的數(shù)據(jù)回填,如果是{}的形式 需要一一對應(yīng),如果是[]的形式 需要單獨的值意思是不接受數(shù)組對象也就是[{},{},{}]的形式解決方法:借用對象,用key去找value
// 進入編輯頁面 多選框的回填(轉(zhuǎn)換為對象的形式,用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設(shè)置。那么所以它的功能也很簡單,那就是給指定的input設(shè)置value。如下所示:
import React from "react";
import { Form, Input } from 'antd';
class TestForm extends React.Component {
componentDidMount(){
const { setFieldsValue } = this.props.form;
// 這里就能實現(xiàn)指定表單設(shè)置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 設(shè)置的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設(shè)置自定義的組件了。
到此這篇關(guān)于react中form.setFieldvalue數(shù)據(jù)回填時 value和text不對應(yīng)的問題的文章就介紹到這了,更多相關(guān)react中form.setFieldvalue數(shù)據(jù)回填內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
React高級指引之Refs and the DOM使用時機詳解
在典型的React數(shù)據(jù)流中,props是父組件與子組件交互的唯一方式。要修改一個子組件,你需要使用新的props來重新渲染它。但是,在某些情況下,你需要在典型數(shù)據(jù)流之外強制修改子組件2023-02-02
在react中對less實現(xiàn)scoped配置方式
這篇文章主要介紹了在react中對less實現(xiàn)scoped配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
react中通過props實現(xiàn)父子組件間通信的使用示例
在React中,父組件可以通過props屬性向子組件傳遞數(shù)據(jù),子組件可以通過props屬性接收父組件傳遞過來的數(shù)據(jù),本文就來介紹一下如何實現(xiàn),感興趣的可以了解一下2023-10-10
React Ant Design樹形表格的復(fù)雜增刪改操作
這篇文章主要介紹了React Ant Design樹形表格的復(fù)雜增刪改操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
React封裝自定義Hook捕獲所有錯誤的實現(xiàn)方法
在 React 開發(fā)中,錯誤處理是確保應(yīng)用穩(wěn)定性和用戶體驗的重要部分,React 提供了多種錯誤捕獲方式,包括錯誤邊界**等,本文將詳細(xì)介紹這些方法,并展示如何封裝一個能夠捕獲所有同步和異步錯誤的自定義 Hook,需要的朋友可以參考下2024-12-12
React中的useMemo 和 useEffect 執(zhí)行順序
在 React 組件的渲染過程中,useMemo 和 useEffect 的執(zhí)行順序是不同的,本文給大家介紹React中的useMemo 和 useEffect 哪個先執(zhí)行,感興趣的朋友一起看看吧2025-01-01

