亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

antd initialValue 的值改變不重新渲染 清空輸入的表單數據

antd initialValue 的值改變不重新渲染 清空輸入的表單數據

牛魔王的故事 2018-11-13 14:38:14
題目描述我在做項目的時候發現 antd initialValue 的值改變了 輸入的表單數據并不會隨之變化 當我這樣操作把searchFormData.loginName的值改變 initialValue: searchFormData.loginName, 原來輸入的表單數據并不會清空 更新奇怪的是當我這樣寫initialValue: Math.random(), 數據又會更新現在我又一個刷新頁面的操作的需求 但是又沒有用到路由 刷新頁面是一個全局按鈕 我把這里的state全部清空 來實現刷新的操作但是即使state為空了 已經輸入的表單的內容 并不會清空 而p標簽的內容已經清空題目來源及自己的思路我的刷新操作是在頂級組件上操作的,所以沒辦法調用子孫級別的 this.props.form.resetFields(); 方法去清空相關代碼// 請把代碼文本粘貼到下方(請勿用圖片代替代碼)<p>{searchFormData.loginName}</p> <FormItem label="登錄名稱" {...formItemLayout}>     {getFieldDecorator('loginName', {       initialValue: searchFormData.loginName,     })(       <Input defaultValue={searchFormData.loginName} />     )} </FormItem>你期待的結果是什么?實際看到的錯誤信息又是什么?我希望 當我把 state 清空 input里面原來輸入的內容也清空掉, 但是我不想用每個input去寫onchang事件,因為比較多
查看完整描述

1 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

通過使用 onFieldsChange 與 mapPropsToFields,可以把表單的數據存儲到上層組件或者 Redux、dva 中,更多可參考 rc-form 示例。

注意:mapPropsToFields 里面返回的表單域數據必須使用 Form.createFormField 包裝。

Form.create({
  onFieldsChange(props, changedFields) {    props.onChange(changedFields);
  },
  mapPropsToFields(props) {    return {
      username: Form.createFormField({
        ...props.username,
        value: props.username.value,
      }),
    };
  },
  onValuesChange(_, values) {
    console.log(values);
  },
})


查看完整回答
1 反對 回復 2018-11-13
  • 1 回答
  • 0 關注
  • 12418 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號